可能大家也都遇到过这个错,我在这里记录一下,截图可能看不清
其实就是这个错
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xxx'is defined
看字面意思我们能够知道原因是spring异常:bean没有被定义,也就是说,spring容器中没有这个bean
解决方法:
大多数是有三种情况导致这个报错。
这里先说一下我的情况
1.没有把该bean注入到spring容器中
也就是我们需要查看spring配置文件是否配置该bean或者是否配置开启注解扫描、配置要扫描的包
这一点如果是没有想到的,那应该去再复习一下spring,我今天就看了一晚上
推荐两个比较官方的链接,不过是英文的网站:Baeldung、Spring
2.该bean是否存在,bean上是否有spring组件注解(如:@Component, @Resource, @Service, @Controller)、bean是否处于可扫描的包下
如果是属于这类问题的话,疏忽了可以理解,但是不清楚的话还是建议去巩固一下注解和spring方面的知识(这些我都还是需要去继续学习的)
可以看一下我整理的博客:spring注解:@Autowired 和@Resource
3.检查以下你的bean名,是否有书写失误
通过我的查询,此类错误导致的报错竟然很多,这就是一个细心的问题了
排查流程:
所以一般报错了,可以这样排查
1.看报错信息:bean 是否已经注入,或者得到的bean名字错误。
2.看spring的配置文件:是否扫描了正确的需要扫描的包
3.使用注解配置的话,看是否相关注解没有加
一般是这三种情况,三种情况都是没有问题的话,基本是可以的。可以尝试clean一把,再重新编译运行。
当然不排除其他情况,目前我还没了解到,如有,请告知!!!