当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}

posted @ 2021-02-03 16:44  烟花火的人生  阅读(436)  评论(0编辑  收藏  举报