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配置类中

 

posted @ 2019-12-11 22:35  ~~~~~~~~~~~~~  阅读(447)  评论(0编辑  收藏  举报