IntelliJ idea在Spring配置无错误时,装配对象出现 Could not autowire. no beans of "XXX" type found

  博客地址: http://blog.csdn.net/u010334295/article/details/78076510

  案例:本人在使用IntelliJ idea 2017.2 开发SSM应用,做Junit Test测试时,通过Resource注解装配DAO时出现了ERROR的错误提示(Could not autowire. no beans of "XXX" type found). 但是当时并未在意,因为单元测试能够正常运行,遂认为对象在mybatis-spring中其实是已正确装配的.

  但在之后的Service层中通过Autowired装配DAO对象又重复出现该错误提示,同样在检查了spring和mybatis各配置项后确认并不是我配置的问题. 单元测试仍然通过. 但是作为一个有强迫症的程序员来说,单个项目中连续出现这种ERROR级别的提示是绝对接受不了的,于是开始查各种原因.

  在查询了万能的百度之后,各位大牛们,一致Ctrl+C/V的结果, 告诉我是我自己太Naive. 于是我也想出去看看美国的华莱士是多么的厉害, 查遍*,国际友人们也多碰到此问题, 仔细斟酌自己的代码后发现, idea的纠错机制在解析spring通过命名约定的方式进行配置时,支持的并不是太好. 所以该ERROR并不会实际影响到你的程序运行.

方法一(新):

  在DAO层添加注解@Repository,这是从Spring 2.0开始新增的注解,用于简化 Spring 的开发,其将数据访问层的类标识为Spring Bean。同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型。但是首先需要在Spring XML 配置文件中启用 Bean 的自动扫描功能 <context:component-scan base-package="..."/>。

(感谢评论区的提醒,在这新增方法↑)

方法二(旧):

  对装配对象加上@SuppressWarnings("SpringJavaAutowiringInspection"), 装配方式则采用idea推荐的构造方法装配后,Autowired的WARNING和装配对象的ERROR警告双双解决. Resource装配时的警告也一并解决. 其实和某些文章中降低ERROR警告到WARNING类似. 但是这更合理恰当.

  以下是解决图示:

IntelliJ idea在Spring配置无错误时,装配对象出现 Could not autowire. no beans of "XXX" type found

  该问题算是告一段落.

  博客地址: http://blog.csdn.net/u010334295/article/details/78076510