springboot配置文件优先级

为了搞清楚springboot的配置文件加载优先级,真的搞的头大!这个关系好乱。。。

网上有人说jar包中的优先级大于jar包外的优先级等等等,一堆的,我感觉都是翻译的官网文档。。。解释的很乱,下面就我自己测试结果分享给大家。

1.首先我写了一个springboot项目,配置文件application.properties(或者application.yaml)

2.把这个项目打包成a.jar

3.新建springboot项目b,引用a.jar,a.jar中配置属性 xxx=1,b项目同样的application.properties(或者application.yaml)配置文件中配置xxx=2

4.运行项目b,测试发现打印出来的xxx的值是1,这说明b项目配置文件优先级没有a.jar包中配置文件优先级高

5.接下来我又测试b项目中添加profile文件,application-test.properties(或者yaml)里面添加配置属性xxx=2,再运行项目打印,测试发现打印出来的xxx=2这说明带profile的配置文件优先级高于a.jar包中的配置文件

总结: 

        当然,命令行注入的优先级是最高的。其他优先级从高到底排列如下:(这里的优先级高是指会优先使用)

        (注:在jar包中的配置文件,我这里都用properties类型,否则可能会和项目中的yaml冲突)

        引用jar包config/application-{profile}.properties
        当前项目config/application-{profile}.yaml
        引用jar包application-{profile}.properties
        当前项目application-{profile}.yaml
        引用jar包config/application.properties
        当前项目config/application.yaml
        引用jar包application.properties
        当前项目application.yaml

猜你喜欢

转载自blog.csdn.net/xiaomojun/article/details/112666818