为了账号安全,请及时绑定邮箱和手机立即绑定

SpringBoot 之 配置文件优先级

标签:
Java

简介

application.propertiesapplication.yml 这是常用的配置文件命名,大家应该都很熟悉。但是它们的优先级到底哪个更高呢?下面就开始做试验。都以server.port来测试

properties vs yml

- resources
    - application.properties # 8081
    - application.yml        # 8082

通过简单的启动试验发现 properties > yml

classpath: vs classpath:/config

- resources
    - application.properties         # 8081
    - /config/application.properties # 8082

启动发现 classpath:/config > classpath

classpath:/config/yml vs classpath:properties

通过上面发现properties的优先级大于yml,config的优先级大于classpath,那么config下面的yml与classpath下面的properties对比如何呢?

- resources
    - application.properties  # 8081
    - /config/application.yml # 8082

启动发现 classpath:/config/yml > classpath:properties
通过这个试验可以发现,位置的优先级大于命名的优先级

properties vs -profile.properties

application.propertiesapplication-{profile}.properties 默认的profile为default,那么久先对比application.propertiesapplicaation-default.properties 的优先级

- resources
    - application.properties         # 8081
    - application-default.properties # 8082

启动发现,application-default.properties > application.properties

properties vs -profile.yml

与上面的试验类似,将application-default.properties替换为application-default.yml

- resources
    - application.properties  # 8081    
    - application-default.yml # 8082

启动发现,application-default.yml > application.properties
所以,加上-default的profile属性时,yml将会大于不加profile的properties,当然如果同时加上profile的属性,那么properties依然会大于yml

classpath:/config/properties vs classpath:application-default.yml

通过前面的实验发现config的优先级还是蛮高的,但是与default相比谁高呢?

- resources
    - application-default.yml         # 8081
    - /config/application.properties  # 8082

启动发现,application-default.yml > /config/application.properties。default的优先级是大于config目录的

classpath:/config/application-default.yml vs classpath:/application-default.yml

- resources
    - application-default.yml         # 8081
    - /config/application-default.yml # 8082

启动发现,同样是default的条件下,config/application-default.yml > application-default.yml

总结

config/application-default.properties > config/application-default.yml > application-default.properties > application-default.yml > config/application.properties > config/application.yml > application.properties > application.yml

点击查看更多内容
9人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消