No qualifying bean of type或Unsatisfied dependency expressed through field ‘XXXService‘或@Autowired 注入

简介: No qualifying bean of type或Unsatisfied dependency expressed through field ‘XXXService‘或@Autowired 注入

这种类似的bean报错基本都是因为bean使用自动注入的时候没有成功注入,可以解决的方法有

1.对象没有被加载到容器

首先要看要加载的类上有没有对应的注解@Controller、@Service、@Mapper、@Repository、 @Component(一些工具类等可以加)、@Configuration

@Mapper和@Repository区别

  • @Mapper和@Repository都是用在dao层接口的上的注解
  • @Mapper可以单独加在dao层接口类上,使得该类直接加载。如果有多个mapper需要加载则可以启动类上配置@MapperScan
  • @Repository单独使用没有用,只是给该mapper接口作为标识,想要被加载到需要用@MapperScannerConfigurer扫描

2.对象没有被扫描到

如果对应的对象已经加上了对应的注解,但还是报错,则可能是因为启动类上没有加上@MapperScan或者@ComponentScan导致因此导致对象没有被扫描到,无法加载到容器中。没有加上的话在启动类加上即可

@MapperScan和@ComponentScan区别

  • 两个Scan不能同时使用,否则mapper会扫描不到,如果非要同时使用则需要@MapperScan(basePackages = {})使@MapperScan只扫描mapper包
  • @MapperScan只扫描Mapper接口的类
  • 而@ComponentScan会扫描@Controller、@Service、@Repository、@Component类等类装配到spring容器中

本次博主出错就是因为两个项目之间要调用service类但只使用了@MapperScan,因此无法进行加载,改成@ComponentScan即可,而@ComponentScan的话扫描的包记得范围需要大一点否则也会报错

3.注意包的层级

如果是测试类上进行测试的时候,要注意测试类的包层级和原先java包下的层级要对应上

4.对象不是由spring加载,而是new来创建

需要注入的对象通常是只需要声明而不需要创建,创建的工作是交给spring的IOC容器来操作,一般加上了static等的操作可能就是已经创建了

5.一个项目里有多个子项目,且每个子项目都有启动类的

注意:通常相同层级的子项目的启动类上扫描只能有一个@ComponentScan在扫描,有两个会发生冲突

 

相关文章
|
Java 数据库连接 mybatis
【Spring常见错误】No qualifying bean of type
📋📋 精彩摘要:MyBatis 核心配置文件(xxxConfig.xml),该文件配置了MyBatis的一些全局信息,,包含数据库连接信息和MyBatis运行时所需的各种特性,以及设置和响应MyBatis行为的一些属性。本文将深入浅出的介绍MyBatis核心配置文件中常用的标签配置。
6882 0
|
Java Spring 容器
解决Spring的UnsatisfiedDependencyException异常的方法
在Spring开发中,UnsatisfiedDependencyException异常意味着依赖注入失败,影响应用稳定性。该异常由Spring容器在无法满足bean依赖时抛出,常见原因包括bean定义错误、循环依赖、多个候选bean等。解决方法包括:检查bean定义和注入的正确性、解决循环依赖、确认依赖包的兼容性、使用@Qualifier或@Primary注解。通过日志、调试工具和异常对比来定位问题。持续学习Spring框架有助于更好地解决此类异常。
9860 1
|
关系型数据库 数据安全/隐私保护 PostgreSQL
Windows环境下安装PostgreSQL
Windows环境下安装PostgreSQL
878 0
|
Java Spring
No qualifying bean of type 'XXXXX' available
该文档描述了Spring框架中`org.springframework.beans.factory.NoSuchBeanDefinitionException`异常的处理方法,该异常是因为无法找到类型为`com.weblog.auth.mapper.UserMapper`的bean导致。解决办法包括在对应的Mapper上添加`@Mapper`注解,并在启动类上添加`@MapperScan`注解以扫描包含Mapper接口的文件夹。
1216 8
|
Java
SpringBoot注入出现@org.springframework.beans.factory.annotation.Autowired(required=true)
SpringBoot注入出现@org.springframework.beans.factory.annotation.Autowired(required=true)
488 0
|
JSON 安全 fastjson
使用fastjosn作为消息转换器,与openapi冲突问题
从Swagger 2升级到SpringDoc过程中,初整合SpringSecurity时遭遇重重难关。首战主页访问受阻,调整安全配置终通行。次遇文档版本不明,困惑不已。最棘手乃JSON序列化问题,快被逼疯。导师相助锁定疑点,在日期处理上,Fastjson与SpringDoc不兼容。解决方案:或回归Jackson,或自定义Fastjson字符串序列化器。经历三日奋战,终告捷,感慨良多。
529 1
使用fastjosn作为消息转换器,与openapi冲突问题
|
JSON JavaScript 前端开发
面试官:JS判断对象为空有几种方法?
面试官:JS判断对象为空有几种方法?
|
存储 缓存 Java
SpringBoot 整合多数据源的事务问题
多数据源实现、切面的优先级问题(Order注解)、事务的传播特性(Propagation类)
|
存储 缓存 NoSQL
基于SpringBoot+Redis解决缓存与数据库一致性、缓存穿透、缓存雪崩、缓存击穿问题
这篇文章讨论了在使用SpringBoot和Redis时如何解决缓存与数据库一致性问题、缓存穿透、缓存雪崩和缓存击穿问题,并提供了相应的解决策略和示例代码。
507 0
|
Java 编译器
解决NoSuchBeanDefinitionException: No qualifying bean of type ‘bean.User‘ available
解决NoSuchBeanDefinitionException: No qualifying bean of type ‘bean.User‘ available
648 0