SpringBoot 配置文件加载优先级

Eric 2023年07月09日 342次浏览

spingboot 配置文件加载优先级

SpringBoot应用程序在启动时会遵循下面的顺序进行加载配置文件:

  1. 类路径下的配置文件
  2. 类路径内config子目录的配置文件
  3. 当前项目根目录下的配置文件
  4. 当前项目根目录下config子目录的配置文件

示例项目配置文件存放结构如下所示:

. project-sample
├── config
│   ├── application.yml (4)
├── src/main/resources
│   │   ├── application.yml (1)
│   │   └── config
│   |   │   ├── application.yml (2)
├── application.yml (3)

启动时加载配置文件顺序:1 > 2 > 3 > 4

项目根下的config目录是最后加载的,所以它的优先级相对其他三个来说是最高的,覆盖顺序为:4 > 3 > 2 > 1。

src/main/resources下的配置文件在项目编译时,会放在target/classes下。

参考文档:https://developer.aliyun.com/article/1080100

指定配置文件路径和名称

java -jar app.jar  --spring.config.location=optional:config/application.yml
  • optional: 当前文件不存在时使用默认加载路径