SpringBoot配置文件优先级和约定路径

一、从类型上来看

默认的优先级是:.properties > .yml > .yaml

SpringBoot使用一个以application命名的配置文件作为默认的全局配置文件。支持properties后缀结尾的配置文件或者以yml/yaml后缀结尾的YAML的文件配置。
以设置应用端口为例
properties文件示例(application.properties):

server.port=80

YAML文件示例(application.yml):

server:
  port: 80

两者同时存在情况
假如各配置文件都配置了不同的端口,那么SpringBoot会使用哪一个端口呢?带着疑问试验一下实例

1、在resources目录下创建两个配置文件,一个为application.yml配置文件,设置端口为8010,另一个为application.properties配置文件,设置端口为8020;
2、重启系统;
3、运行结果:

4、 结论:可见在同一目录下,properties配置优先级 > YAML配置优先级。//所以我们在jar包启动时带上properties写法的配置可以覆盖配置
————————————————
 

二、从位置上来看

springboot默认读取配置文件的位置有四个:
1.项目根目录/config 目录下(file:./config/ (当前项目路径config目录下); )
2.项目根目录下(file:./ (当前项目路径下);)
3.类路径/config目录下:classpath:config/application.yml(classpath:/config/ (类路径config目录下);)
4.类路径下:classpath: (idea默认生成的配置文件存储位置就是类路径下)(classpath:/ (类路径config下).优先级由高到底,高优先级的配置会覆盖低优先级的配置;)
这四个配置文件的优先级:从上往下递减

 优先级由高到底,高优先级的配置会覆盖低优先级的配置

多种目录配置同时存在情况
接下来还是以端口配置为例

1.在resources/目录下配置文件设置端口为8888;
2.在resources/config目录下配置文件设置端口为9999;
3.在项目路径下配置文件设置端口为6666;
4.在项目路径config目录下配置文件设置端口为7777;

 最终运行结果:

Tomcat started on port(s): 7777 (http) with context path '/beedo'
Started BeedoApplication in 4.544 seconds (JVM running for 5.335)

因为公司项目中多个文件配置了相同的数据库之类的,所以特来查看相关文章,参考如下文章:特此感谢。仅当作个人笔记使用。

————————————————
原文链接:https://blog.csdn.net/IT_faquir/article/details/80869578
原文链接:https://blog.csdn.net/eden_wang/article/details/128106524

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值