SpringBoot配置文件application.yml及加载顺序
配置文件分类
1. SpringBoot中4级配置文件
- 1级(工程路径config目录配置文件):file:config/application.yml [最高]
- 2级(工程路径目录配置文件):file:application.yml
- 3级(项目类路径config目录配置文件):classpath:config/application.yml
- 4级(项目类路径目录配置文件):classpath:application.yml [最低]
2. 作用:
- 1级与2级留做系统打包后设置通用属性,1级常用于运维经理进行线上整体项目部署方案调控,2级服务于运维人员配置涉密线上环境
- 3级和4级用于系统开发阶段设置通用属性,3级常用于项目经理进行整体项目属性调控,4级服务于开发人员本机开发与测试
3. 注意:
多层级配置文件间的属性采用叠加并覆盖的形式作用于程序。
自定义配置文件
\1. 配置文件可以修改名称,通过启动参数设定
\2. 配置文件可以修改路径,通过启动参数设定
3.微服务开发中配置文件通过配置中心进行设置
配置文件总结
\1. SpringBoot在开发和运行环境均支持使用临时参数修改工程配置
\2. SpringBoot支持4级配置文件,应用于开发与线上环境进行配置的灵活设置
\3. SpringBoot支持使用自定义配置文件的形式修改配置文件存储位置
4.基于微服务开发时配置文件将使用配置中心进行管理
Springboot中application.yml、application.properties和bootStrap.yml加载顺序
SpringApplication位于项目根目录
所以所有得代码要和SpringApplication所在目录平级或下一级
以jar包发布springboot项目时
默认会先使用jar包跟目录下的application.properties来作为项目配置文件。
如果在不同的目录中存在多个配置文件,它的读取顺序是:
- 1、config/application.properties(项目根目录中config目录下)
- 2、config/application.yml
- 3、application.properties(项目根目录下)
- 4、application.yml
- 5、resources/config/application.properties(项目resources目录中config目录下)
- 6、resources/config/application.yml
- 7、resources/application.properties(项目的resources目录下)
- 8、resources/application.yml
**注: **
1、如果同一个目录下,有application.yml也有application.properties,默认先读取application.properties。
2、如果同一个配置属性,在多个配置文件都配置了,默认使用第1个读取到的,后面读取的不覆盖前面读取到的。
3、创建SpringBoot项目时,一般的配置文件放置在“项目的resources目录下”
4、先后加载顺序:若application 和bootstrap 在同一目录下:bootstrap先加载 application后加载
若application.yml 和bootStrap.yml 在同目录下
则bootStrap.yml 的加载顺序要于application.yml,即bootStrap.yml 会优先被加载。
原理:
bootstrap.yml 于应程序上下的引导阶段。
bootstrap.yml 由Spring ApplicationContext加载。
- bootstrap.yml 可以理解成系统级别的⼀些参数配置,这些参数⼀般是不会变动的。
- application.yml 可以⽤来定义应⽤级别的,如果搭配 spring-cloud-config 使用 application.yml 定义的文件可以实现动态替换。