springboot starter 中应该注意的问题
今天工作走中遇到一个问题:
spring-main依赖spring-aaa(springboot start项目)
在spring-aaa项目中,用@component注释的bean,无法从容器中获取。(无法autowired)
思考肯定是spring-aaa中的bean在maven导入spring-main时,不是所有的bean都被加载到spring-main的容器中。
所有的springboot start项目中,会定义xxxAutoConfigeration配置类
然后将配置类以key-value的方式写入spring.factories。
spring-main依赖的时候,springboot启动的时候,会去调用所有依赖项目的spring.factories的配置类。
然后把相关的bean配置到spring-main的容器中。
解决:根据上面的思路,将@component注释的bean,换一种方式。用@bean的方式写入在xxxAutoConfigeration配置类中