一、背景
SpringBoot的配置文件可以给环境变量中的指定key设置value,程序运行时候,从环境中通过key获得value,从而可以实现通过改变配置文件的值,控制程序运行效果,实现业务逻辑。
二、配置文件的位置
- ./
- ./config/
- ./config/*/
- resources/
- resources/config/
三、配置文件的类型
- application.properties
- application.yml
- application.yaml
四、示例代码
五、演示结果
- 优先级高低的含义
对于key相同的配置项,优先级高的配置文件会覆盖掉优先级低的配置文件,
优先级低的配置文件,如果想要配置项起作用,只能采用不同的key
SpringBoot版本:>=2.4.2(截止文章发布,最高版本2.7.5)
位置优先级:(依次降低)
1> ./config/*/
2> ./config/
3> ./
4> Resources/config/
5> Resorces/
文件类型优先级:(依次降低)
1> .properties
2> .yml
3> .yaml
SpringBoot版本:2.4.1
位置优先级:(依次降低)
1> ./config/*/
2> ./config/
3> ./
4> Resources/config/
5> Resorces/
文件类型优先级:(依次降低)
1> .yaml
2> .yml
3> .properties
SpringBoot版本:2.4.0
位置优先级:(依次降低)
1> ./config/
2> ./config/*/
3> ./
4> Resources/config/
5> Resorces/
文件类型优先级:(依次降低)
1> .yaml
2> .yml
3> .properties
SpringBoot版本:2.3.[0,12].RELEASE
位置优先级:(依次降低)
1> ./config/
2> ./config/*/
3> ./
4> Resources/config/
5> Resorces/
文件类型优先级:(依次降低)
1> .properties
2> .yml
3> .yaml
SpringBoot版本:2.2.x.RELEASE
位置优先级:(依次降低)
1> ./config/
2> 不会去加载./config/*/下的任何配置文件
3> ./
4> Resources/config/
5> Resorces/
文件类型优先级:(依次降低)
1> .properties
2> .yml
3> .yaml
再原始的版本省略,感兴趣自行测试.
六、特殊情况
指定优先级配置:spring.profiles.active=xxx,该配置项服从以下规则:
- 该配置也是一个配置项,起作用的优先级服从上述规则
- 最高优先级的会覆盖掉低优先级的(注意不是合并而是覆盖)
- xxx可以指定多个配置文件,例如dev,alpha,prod,越靠后的优先级越高
- 被指定的配置文件xxx中不可以再重复出现spring.profiles.active=yyy的配置
- 优先级高的配置项才会起作用
本文详细介绍了SpringBoot配置文件的位置、类型及加载顺序。内容包括配置文件的一般位置如./, resources/config/等,常见的配置类型如application.properties和application.yml,以及不同版本SpringBoot的配置文件优先级规则。还特别提到了通过spring.profiles.active指定配置的特殊情况,强调了高优先级配置会覆盖低优先级,并禁止在被指定配置文件中再次定义spring.profiles.active。"
133347490,5694077,解决Elasticsearch写入冲突与_source更新,"['elasticsearch', '大数据']
2511

被折叠的 条评论
为什么被折叠?



