springboot配置文件加载顺序

本文详细介绍了SpringBoot配置文件的位置、类型及加载顺序。内容包括配置文件的一般位置如./, resources/config/等,常见的配置类型如application.properties和application.yml,以及不同版本SpringBoot的配置文件优先级规则。还特别提到了通过spring.profiles.active指定配置的特殊情况,强调了高优先级配置会覆盖低优先级,并禁止在被指定配置文件中再次定义spring.profiles.active。" 133347490,5694077,解决Elasticsearch写入冲突与_source更新,"['elasticsearch', '大数据']

一、背景

SpringBoot的配置文件可以给环境变量中的指定key设置value,程序运行时候,从环境中通过key获得value,从而可以实现通过改变配置文件的值,控制程序运行效果,实现业务逻辑。

二、配置文件的位置

  1. ./
  2. ./config/
  3. ./config/*/
  4. resources/
  5. resources/config/

三、配置文件的类型

  1. application.properties
  2. application.yml
  3. application.yaml

四、示例代码

springboot-config-load-order

五、演示结果

  • 优先级高低的含义
    对于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,该配置项服从以下规则:

  1. 该配置也是一个配置项,起作用的优先级服从上述规则
  2. 最高优先级的会覆盖掉低优先级的(注意不是合并而是覆盖)
  3. xxx可以指定多个配置文件,例如dev,alpha,prod,越靠后的优先级越高
  4. 被指定的配置文件xxx中不可以再重复出现spring.profiles.active=yyy的配置
  5. 优先级高的配置项才会起作用
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值