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

 更新时间:2024年12月13日 14:31:39   作者:小呆呆^  
介绍了在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的区别

  • @Resource和@Autowired注解都是用来实现依赖注入的。只是@AutoWriedby type自动注入,而@Resource默认按byName自动注入。
  • @AutoWried基于spring的注解org.springframework.beans.factory.annotation.Autowired,它默认是按类型进行的装配的。任何给定bean类只有一个构造函数(最大值)可以声明这个注释,并将'required'参数设置为true,表示构造函数在用作Spring bean时要自动装配。如果多个非必需构造函数声明了注释,则它们将被视为自动装配的候选者。将选择具有最大数量的依赖项的构造函数,这些构造函数可以通过匹配Spring容器中的bean来满足。如果不能满足任何候选者,则将使用主要/默认构造函数(如果存在)。如果一个类只声明一个构造函数开头,它将始终被使用,即使没有注释。带注释的构造函数不必是公共的。
  • @Resource是基于j2ee的注解(可以减少了与spring的耦合)(JDK1.6以上支持)默认是按名字进行注解。注释标记应用程序所需的资源。此注释可以应用于应用程序组件类,或者该组件类的字段或方法。如果将该注释应用于一个字段或方法,那么初始化应用程序组件时容器将把所请求资源的一个实例注入其中。如果将该注释应用于组件类,则该注释将声明一个应用程序在运行时将查找的资源。即使此注释没有被标记为 Inherited,部署工具仍然需要检查任意组件类的所有超类,以发现这些超类中所有使用此注释的地方。所有此类注释实例都指定了应用程序组件所需的资源。注意,此注释可能出现在超类的 private 字段和方法上;在这种情况下容器也需要执行注入操作。

总结

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

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

相关文章

  • 谈谈Spring Boot 数据源加载及其多数据源简单实现(小结)

    谈谈Spring Boot 数据源加载及其多数据源简单实现(小结)

    这篇文章主要介绍了谈谈Spring Boot 数据源加载及其多数据源简单实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • java单链表逆序用法代码示例

    java单链表逆序用法代码示例

    这篇文章主要介绍了java单链表逆序用法代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 简单了解java类的初始化以及类的实例化

    简单了解java类的初始化以及类的实例化

    这篇文章主要介绍了简单了解java类的初始化以及类的实例化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Java实习打卡8道面试题

    Java实习打卡8道面试题

    临近秋招,备战暑期实习,祝大家每天进步亿点点!本篇文章准备了十道java的常用面试题,希望能够给大家提供帮助,最后祝大家面试成功,进入自己心仪的大厂
    2021-06-06
  • 基于Java的度分秒坐标转纯经纬度坐标的漂亮国基地信息管理的方法

    基于Java的度分秒坐标转纯经纬度坐标的漂亮国基地信息管理的方法

    本文以java语言为例,详细介绍如何管理漂亮国的基地信息,为下一步全球的空间可视化打下坚实的基础,首先介绍如何对数据进行去重处理,然后介绍在java当中如何进行度分秒位置的转换,最后结合实现原型进行详细的说明,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • springboot配置文件中敏感数据(账号密码)加密方式

    springboot配置文件中敏感数据(账号密码)加密方式

    这篇文章主要介绍了springboot配置文件中敏感数据(账号密码)加密方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • SpringBoot2.x 集成腾讯云短信的详细流程

    SpringBoot2.x 集成腾讯云短信的详细流程

    本文主要对SpringBoot2.x集成腾讯云短信进行简单总结,其中SpringBoot使用的2.4.5版本,本文通过业务流程图实例代码相结合给大家介绍的非常详细,需要的朋友参考下吧
    2021-06-06
  • Java中JDK14的新特性之JFR,JMC和JFR事件流(推荐)

    Java中JDK14的新特性之JFR,JMC和JFR事件流(推荐)

    JFR是一个基于事件的低开销的分析引擎,具有高性能的后端,可以以二进制格式编写事件,而JMC是一个GUI工具,用于检查JFR创建的数据文件。本文给大家介绍Java中JDK14的新特性之JFR,JMC和JFR事件流的相关知识,感兴趣的朋友一起看看吧
    2020-05-05
  • java 解压与压缩文件夹的实例详解

    java 解压与压缩文件夹的实例详解

    这篇文章主要介绍了 java 解压与压缩文件夹的实例详解的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,掌握这样的方法,需要的朋友可以参考下
    2017-10-10
  • Java 对 Cookie增删改查的实现示例

    Java 对 Cookie增删改查的实现示例

    这篇文章主要介绍了Java 对 Cookie增删改查的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05

最新评论