解决bean对象注入报错:Field in required a bean of type‘‘that could not be found.问题

 更新时间:2025年06月06日 09:43:24   作者:Stephen·You  
这篇文章主要介绍了解决bean对象注入报错:Field in required a bean of type‘‘that could not be found.问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

问题现象

今天在运行新项目的时候,出现了一下报错:

Field XxxUserExtDao in com.xxx.auth.service.controller.abs.BaseController required a bean of type 'com.xxx.auth.service.mapper.run.XxxUserExtDao' that could not be found.

问题分析

前提

在完成上述操作之前,请先基于mybatis创建好dao层接口类对应的dao层实现类(一般都是以xml文件的形式,并确保mapper标签的namespace属性指定为dao层接口类的全路径。

从报错信息可知:

这是因为spring的Ioc容器在注入bean对象的时候,在 BaseController 类中检测到了 @Autowired 注解,于是就会去寻找这个 XxxUserExtDao 对象的注入方式:

然后检测到 XxxUserExtDao 这个类中带有 @Component 注解,该注解用于除了@Controller(控制层)@Service(业务层)@Repository(dao层的实现类)之外,需要注入成bean对象的类;

注意:

这里值得一提的是:由于dao层的实现类对于项目结构而言,太冗余了,每写一个dao层接口,就得手写一个实现类,于是我们可以通过注解的方式,来实现自动创建dao层实现类,而不再需要自己手动创建实现类和添加@Repository注解了,方式有两种:

1. 在 dao层接口类 上添加 @Mapper注解。 作用:在接口类上添加了 @Mapper注解 ,在编译之后会自动生成相应的接口实现类:

2. 在 主类(启动类)上添加 @MapperScan注解,并指定dao层接口的包路径,在编译之后会自动生成相应的接口实现类

建议

两种方法取其中一种即可,这里建议使用方法2,这样就不需要每个dao层都添加@Mapper注解了!!!

解决方法

主类(启动类)上添加 @MapperScan注解,并指定dao层接口的包路径,在编译之后会自动生成相应的接口实现类

启动成功:

调用接口成功:

总结

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

相关文章

  • spring boot项目fat jar瘦身的实现

    spring boot项目fat jar瘦身的实现

    这篇文章主要介绍了spring boot项目fat jar瘦身的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Java进阶学习:jar打包详解

    Java进阶学习:jar打包详解

    Java进阶学习:jar打包详解...
    2006-12-12
  • 详解租约机制以及在hbase中的应用

    详解租约机制以及在hbase中的应用

    这篇文章主要介绍了详解租约机制以及在hbase中的应用的相关资料,需要的朋友可以参考下
    2017-02-02
  • SpringBoot实现接口等幂次校验的示例代码

    SpringBoot实现接口等幂次校验的示例代码

    本文主要介绍了SpringBoot实现接口等幂次校验的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Spring boot整合shiro+jwt实现前后端分离

    Spring boot整合shiro+jwt实现前后端分离

    这篇文章主要为大家详细介绍了Spring boot整合shiro+jwt实现前后端分离,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • k8s部署MongDB全过程

    k8s部署MongDB全过程

    文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接
    2025-01-01
  • Java parseInt解释加方法示例

    Java parseInt解释加方法示例

    使用此方法得到的原始数据类型的一个特定的字符串。 parseXxx()是一个静态方法,可以有一个参数或两个
    2013-11-11
  • JAVA如何自动下载SSL证书并导入到本地

    JAVA如何自动下载SSL证书并导入到本地

    这篇文章主要介绍了JAVA如何自动下载SSL证书并导入到本地问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • SpringBoot项目实现分布式事务的实战指南

    SpringBoot项目实现分布式事务的实战指南

    在微服务架构中,分布式事务是确保跨服务数据一致性的关键技术,SpringBoot作为主流的Java开发框架,提供了多种分布式事务解决方案,本文将深入探讨这些方案,帮助开发者根据业务场景选择最适合的方案,需要的朋友可以参考下
    2025-10-10
  • Java排序算法之桶排序算法解析

    Java排序算法之桶排序算法解析

    这篇文章主要介绍了Java排序算法之桶排序算法解析,桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作原理是将数组分到有限数量的桶子里,每个桶子再个别排序,有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序,需要的朋友可以参考下
    2023-10-10

最新评论