Springboot maven项目配置文件覆盖
遇到这样一个问题
就是我在引用一个有application.yml的公共maven项目的时候
新maven项目的application.yml会覆盖公共项目的配置文件
SpringBoot是由上向下扫描的文件的,那么总不能其它maven的application.yml都配置文件都写一遍吧~
如图所示:
解决思路
既然覆盖的是相同的文件名称
SpringBoot还有一种properties的配置文件方式
把公共的配置为application.properties就可以了~
如图所示:
SpringBoot配置文件可以使用yml格式和properties格式
分别的默认命名为:application.yml、application.properties
存放目录
SpringBoot配置文件默认可以放到以下目录中,可以自动读取到:
- 项目根目录下
- 项目根目录中config目录下
- 项目的resources目录下
- 项目resources目录中config目录下
读取顺序
如果在不同的目录中存在多个配置文件,它的读取顺序是:
- 1、config/application.properties(项目根目录中config目录下)
- 2、config/application.yml
- 3、application.properties(项目根目录下)
- 4、application.yml
- 5、resources/config/application.properties(项目resources目录中config目录下)
- 6、resources/config/application.yml
- 7、resources/application.properties(项目的resources目录下)
- 8、resources/application.yml
注:
- 1、如果同一个目录下,有application.yml也有application.properties,默认先读取application.properties。
- 2、如果同一个配置属性,在多个不同名的配置文件中都配置了,默认使用第1个读取到的,后面读取的不覆盖前面读取到的。
- 3、创建SpringBoot项目时,一般的配置文件放置在“项目的resources目录下”
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。