当 application.properties
和 application.yml
同时存在,同样的参数,最终生效的是 application.properties
中的配置。
所以如果项目里因为一些“逆天”原因,导致同时存在这两个配置,那么就要小心覆盖问题了!当然,移除其中一个配置文件才是最佳处理方案!
再扩展下 Spring Boot 在启动时加载配置属性的顺序,可参考如下的官方文档:
从上到下,优先级逐渐降低,即下面的配置,同样的参数会被上面的配置所覆盖。
简单优先级:
命令行参数 > JAR包外面的 application-{profile}.properties
> JAR包内的 application-{profile}.properties
> JAR包外的 application.properties
> JAR包内的 application.properties
扩展 bootstrap 和 application 配置文件知识:
boostrap 由父 ApplicationContext 加载,比 applicaton 优先加载,且它里面的内容不会被覆盖!
比如一些配置中心的配置,需要填写在 boostrap 中,父上下文先去配置中心获取额外的一些配置,然后再启动 SpringBoot 上下文。
扫码领红包微信赞赏
支付宝扫码领红包
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。侵权投诉:375170667@qq.com