spingboot 配置文件加载优先级
SpringBoot应用程序在启动时会遵循下面的顺序进行加载配置文件:
- 类路径下的配置文件
- 类路径内config子目录的配置文件
- 当前项目根目录下的配置文件
- 当前项目根目录下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: 当前文件不存在时使用默认加载路径