springboot的配置文件加载总结

2023-12-13 23:17:05

优先级

在同一级目录下,会先比较前缀bootstrap、application,其中bootstrap比application的优先级高,其次再去比较后缀.properties、.yml,其中.properties比.yml优先级高

所以它们的执行顺序如下:

bootstrap.properties > bootstrap.yml > application.properties >
application.yml

配置覆盖

当同一个配置属性在bootstrap.properties和bootstrap.yml文件中都存在时,那么properties中的配置会被加载,而忽略yml文件中的配置(即优先级高的配置覆盖优先级低的配置),不同配置相互互补。此处application(.properties/yml)同理
但当同一配置在bootstrap和application中都存在时,那么虽然优先加载bootstrap但是会被applicatioin中的配置覆盖,此时则变成了低优先级覆盖高优先的配置,所以网上很多文章所说的高优先级覆盖低优先级其实是不严谨的。
当同一个配置属性在四种配置(bootstrap.properties、bootstrap.ym、application.properties、application.yml)都存在,application.properties里的配置一定是会覆盖其他配置文件,首先遵循第二点:虽然优先加载bootstrap但是会被applicatioin中的配置覆盖,这时候就只剩application.yml、application.properties了,此时遵循第一点:即优先级高的配置覆盖优先级低的配置,所以application.propertiest的配置文件会覆盖其他配置文件。

总结

相同配置名称的配置文件,配置以先加载的为准,也就是优先级高的会覆盖优先级低的
不同配置名称的配置文件,配置以后加载的为准,也就是优先级低的会覆盖优先级高的

文章来源:https://blog.csdn.net/weixin_43099842/article/details/134814967
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。