java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > @Autowired报错Could not autowire. No beans of ‘XXX‘ type found

解决@Autowired报错Could not autowire. No beans of ‘XXX‘ type found问题

作者:小呆呆^

介绍了在IDEA中使用@Autowired报错Couldnot autowire. No beans of 'XXX' type found的解决方法,原因是@Autowired在注入service时,由于service接口没有实现类,而mybatis仅需提供Dao接口,导致@Autowired无法识别

背景

IDEA中使用@Autowired报错

Could not autowire. No beans of 'XXX' type found.

错误大致意思为:

没有匹配到类型为XXX的bean。

原因

个人觉得,注入controllerservice虽然一般来说我们都是注入一个接口,但是该接口有实现类,并且使用@Service进行关联,所以注入类型应该也可以视为一个类,但是mybatis仅需提供Dao接口,也就是说,注入servicedao只是一个接口,而没有实现类,虽然mybatis能够通过Dao接口和xml文件实现与数据库的操作,但是@Autowired并没有这个识别功能,可能它就认为你类型不匹配,无法使用通过类型注入的方法。

解决方法

  1. 在相应mapper中加上@Component注解
  2. 检查service层有没有加入@service注解,若无则加上
  3. 使用@resource注解代替@Autowired注解
  4. @Autowired(required = false) 设置required 属性值为 false,错误提示消失。
  5. 在相应的dao层加入@Repository注解

@Autowired和@Resource的区别

总结

简单讲述了@Autowired报错Could not autowire. No beans of 'XXX' type found的原因以及解决办法

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文