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。于是我也想出去瞧瞧美国的华莱士是多么的厉害,查遍stackoverflow国际友人也多碰到此问题。后来查到原因是idea在解析Spring XML文件中的命名约定配置项时,静态检查纠错机制支持的并不是太好。所以该ERROR并不会实际影响到你的程序运行。

方法一(新):

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

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

方法二(旧):

  装配对象通过构造方法传入,@Autowired注解在构造方法上,并且构造方法上再添加注解:@SuppressWarnings("SpringJavaAutowiringInspection"),警告双双解决。Resource装配时的警告也消失了。其实和某些文章中降低ERROR警告到WARNING类似。但是用@SuppressWarnings的方式更合理恰当,经手的人也能通过该注解知道是怎么回事。

  以下是解决图示:

  该问题算是告一段落.

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

 

  • 14
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值