启动项目,编译报错: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

转载于:https://www.cnblogs.com/MangogoLee/p/9953467.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值