一、问题
如果点击运行会报错如下
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.hdu.jxj.project.background.abroad.mapper.AbroadMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1790)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1346)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657)
... 30 more
二、分析与解决
首先看报错信息
No qualifying bean of type ‘com.hdu.jxj.project.background.abroad.mapper.AbroadMapper’ available
提示说找不到相应的bean,根据spring控制反转(IOC)的思想,说明AbroadMapper这个类没有被当成bean注入进Spring的容器里面。
所以开始考虑AbroadMapper该如何注入Spring容器,网上一搜,发现需要在springboot的启动类上加@MapperScan注解。
三、@autowired爆红解决
加入之后项目可以正常运行,但是@Autowired注解依然爆红
虽然爆红,但是项目可以正常运行,这说明代码书写是正确的(最起码编译器是这么认为的),唯一的可能是IDEA的报错系统可能有点问题。同样是网上一搜,发现确实如此找到一篇博客写的很棒,原博客的解决方法如下,本人测过都有用,原博客链接【点击这里】