码迷,mamicode.com
首页 > 其他好文 > 详细

启动项目,编译报错:Consider defining a bean of type 'XXX' in your configuration.

时间:2018-11-13 18:06:38      阅读:5146      评论:0      收藏:0      [点我收藏+]

标签:标识   defining   boot   ima   解决   tco   业务逻辑层   自动装配   intel   

在controller层注入ConfigBean,编译器报错:

技术分享图片

 

一开是以为是intellij idea 的告警级别设定的问题,就没有在意,继续启动项目,结果控制台报错:Consider defining a bean of type ‘XXX‘ in your configuration.
技术分享图片

 

错误信息显示找不到这个Bean类。 但是我明明写了啊。
技术分享图片

 

后来经过一番查找,大概有了如下理解:
主要问题出在@SpringBootApplication 这个注解上。
技术分享图片

 

点进这个注解,可以看到,此注解功能大概由下面多个注解构成,其中有个@ComponentScan
技术分享图片

 

@ComponentScan这个注解主要就是定义扫描的路径,从中找出标识了需要装配的类自动装配到spring的bean容器中。(我理解这个标识最根本就是@Component注解。那为什么之前日日coding的@Controller、@Service 也能被自动扫描进容器呢---因为点进这几个注解,查看源码就会发现他们有一个共同注解,就是@Component,它用于没有明确角色的组件。(啊,过去的2年真的是不求甚解啊。。写了两年并不知道)。。。。。。)。

而我之前写的ConfigBean并没有加任何注解,所以就扫描不进啦。
加上注解@Component,项目启动成功~!

问题解决了,接下来敲黑板,总结一下知识点:
1.启动类Application中的@SpringBootApplication注解的功能之一是定义扫描路径,找到需要配置的类(@ComponentScan注解)。
2.声明Bean的注解有:
@Component 没有明确角色的组件
@Service 在业务逻辑层(Service层)使用 -----源码包含@Component
@Controller 用于标注控制层组件 -----源码包含@Component
@RestController -----源码包含@Controller -----源码包含@Component

启动项目,编译报错:Consider defining a bean of type 'XXX' in your configuration.

标签:标识   defining   boot   ima   解决   tco   业务逻辑层   自动装配   intel   

原文地址:https://www.cnblogs.com/MangogoLee/p/9953467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!