idea 解决springboot 中 @Autowired注入对象时有红线问题

it2022-05-05  179

今天自己编写了一个Spring Boot Starter ,在引入Spring Boot Starter后,使用@Autowired注入Starter中提供的业务方法时,Idea 提示编译报错,找不到这个Bean,如图所示:

 

上网查询了下资料,都没有具体说明,很多是建议是修改Idea的对注入Bean的等级,从Error降为 Warning。个人感觉不妥,

经分析后,任务这是一个Spring Bean 注解扫描范围的问题,因为我要调用的Bean 在Starter Jar 文件中,Spring Boot 默认的扫描范围是启动类application所在的包以及子包中的Bean。如果要改变扫描范围我们可以使用注解:@ComponentScan,如图:

其中com.nbcb是应用的包路径,com.ht 是Starter jar 包的包路径。添加之后,刷新工程,Idea就不报错,且可以正常运行,如图所示:

PS: 有一点还没有搞清楚,没有添加这个注解的时候,程序就是可以正常运行的,并没有提示缺少bean。添加这个注解似乎只是显示的让IDEA知道了Bean的加载范围,这样IDEA在检查的时候就不会报错了。 


最新回复(0)