项目B中引入外部项目A的jar,在A中有一个变量上加了@value,无法获取当前应用中的一个配置属性
来源:4-14 完全自动装配

troylc
2019-08-25
我在A项目中写的API,在这个API中的一个类上定义的一个属性变量,变量上带有@value注解,如:
A项目中的API类:
然后我把这个A项目打成jar包,再到B项目中引入A项目的这个API,再到B项目的配置文件中配置saas.common.api.url这个属性的值,
结果在系统启动的时候,实例化这个类时,获取不到这个属性的值
AB两个项目不是父子项目,
但是当B项目系统启动后,我在controller中用这个 @Value("${saas.common.api.url}"),又能获取到值,为什么系统启动的时候在B项目中的A项目的jar包中的类无法获取到这个属性?
请问,这是为什么?还有遇到这样的问题,以什么样的思路去找问题,这问题折腾了一天,没找到原因,也无头绪,实在是无解,请教请教,谢谢
写回答
1回答
-
troylc
提问者
2019-08-25
在QQ群里,大家给出了解决方案,这是一个bean初始化顺序的问题。
解决方案:
写一个初始化的方法,在方法上加上@PostConstruct注解,如:
被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行
00
相似问题