springboot @ComponentScan 注解不支持扫描jar包中组件解决办法

最近在研发一个监控平台系统,使用了springboot、maven等开源框架。项目结构为一个parent和两个model。
modelA的java包结构是:com.yd.pmp.aaa.xxx.xx
modelB的java包结构是:com.yd.pmp.bbb.xxx.xx
modelB将来要发布成一个jar包,modelA中会依赖modelB的jar包。在测试的时候发现,在modelA中启动时无法扫描到modelB中声明的那些component,在网上找了大半天资料都没有发现有相关的解决方案。后来隐隐约约想起学习springboot时有过说明,@ComponentScan扫描的时候,只扫描当前程序所在包结构(包含子包)中声明的组件。调整了modelA中启动程序所在的包位置,果然好使了!

modelA中启动程序类App.java(内含@ComponentScan注解)原来所在包的位置是:
com.yd.pmp.aaa.App.java
调整后所在包的位置是:
com.yd.pmp.App.java
这样在App.java启动后就可以扫描到modelB中所有声明的组件了

猜你喜欢

转载自bf1977.iteye.com/blog/2333033