当jar包中有配置文件时,在本项目中无法使用的问题
1、背景:
在某项目(比如:A项目)中引入自己打的jar包(比如:B项目),B项目中有使用到B配置文件中的属性,自己启动没报错,但当启动当前A项目时出现了:java.lang.IllegalArgumentException: Could not resolve placeholder 'xxx.xxx.xxx' in value "${xxx.xxx.xxx}"的错误,但是在jar包(B项目)的配置文件中是有配置该属性的。
2、原因:
后多方查证得知:在B项目中使用的配置文件名称为:application.properties,与A项目中的配置文件同名,当A引入B的jar包时,A中的application.properties文件会整个覆盖掉(即B中的application.properties文件不起作用)B中的配置文件。
3、解决办法:
对与该问题,可以采用以下几种方式解决:
1)、将A或者B中的application.properties文件改问application.yml文件;
2)、在A的application.properties文件中添加B中所有的配置信息;
3)、将B中配置文件所放位置换掉;
4)、为B项目中使用到属性的地方添加默认值,如:${xxx.xxx.xxx:123}