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

Posted mangogolee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了启动项目,编译报错:Consider defining a bean of type 'XXX' in your configuration.相关的知识,希望对你有一定的参考价值。

在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.的主要内容,如果未能解决你的问题,请参考以下文章

springboot 工程启动报错之Consider defining a bean of type ‘XXX’ in your configuration.

spring bootmybatis启动报错:Consider defining a bean of type 'com.newhope.interview.dao.UserMapper&(代

Spring Boot 报错:Consider defining a bean of type ‘com.UserService‘ in your configuration.

Spring Boot 报错:Consider defining a bean of type ‘com.UserService‘ in your configuration.

Spring Boot 报错:Consider defining a bean of type ‘com.UserService‘ in your configuration.

Consider defining a bean of type ‘com.xxx.xxx‘ in your configuration.