美文网首页
Spring中出现NoUniqueBeanDefinitionE

Spring中出现NoUniqueBeanDefinitionE

作者: 向上生长之路 | 来源:发表于2021-10-14 20:49 被阅读0次

使用Spring开发框架,有时会遇到同一个接口有多个实现类的情况,这时候在代码中依赖注入该接口的话,Spring就会报错:org.springframework.beans.factory.NoUniqueBeanDefinitionException

  • Spring 版本 5.3.6

错误重现

1.创建接口类,暴露name方法用来区分具体的实现类



2.创建接口对应的两个实现类




3.使用@Resource注解注入接口

按照以上操作,启动工程就会发现控制台报错了


解决方案

  • 可以通过设置@Resource注解name参数的值,指定注入的实例名,来明确Spring该注入哪个类


    默认情况下,这里name的值即为Spring的IOC容器中Bean的驼峰标识名称
  • 还可以通过@Primary注解,标记在具体的实现类中,表明当同一个接口存在多个实现类时,优先使用该注解标记的类

编写控制器方法来验证注入的类



启动工程访问控制器,可以看到对应的name值,符合我们的预期~


完整测试工程参考:https://github.com/netbuffer/spring-boot-demo

相关文章

  • Spring中出现NoUniqueBeanDefinitionE

    使用Spring开发框架,有时会遇到同一个接口有多个实现类的情况,这时候在代码中依赖注入该接口的话,Spring就...

  • 【玩转Spring】spring IOC与AOP

    Spring 环境 spring 与 maven 在maven官网中搜索spring,出现一系列的spring包供...

  • spring-boot中文乱码三

    Spring系列产品大量运用在网站开发中,而Spring Boot是为了简化配置而出现的,理论上讲Spring B...

  • Mybatis出现Consider defining a bea

    当我们启动spring boot项目的时候,出现了这样的问题该如何解决呢? 原因: 未在Spring boot中配...

  • Spring Boot 资源预加载

    项目出现调用spring bean 资源出现空指针异常。经分析是spring 资源出现懒加载情况导致资源未加载,但...

  • invalid oracle validationQuery.

    出现这个报错的话,请大家注意yml中的配置 spring: datasource: url: jdbc:ora...

  • Spring Framework 5

    如何学习Spring框架 了解Spring的出现是为了解决什么问题!!!了解Spring的出现是为了解决什么问题!...

  • Spring Framework 5

    如何学习Spring框架 了解Spring的出现是为了解决什么问题!!!了解Spring的出现是为了解决什么问题!...

  • spring IOC之循环依赖

    使用过spring的人,肯定知道spring的IOC,DI。那么在我们使用的过程中,可能会出现比如我一个A类,里面...

  • Spring MVC核心技术

    异常处理 Spring MVC中, 系统的DAO, Service, Controller层出现异常, 均通过th...

网友评论

      本文标题:Spring中出现NoUniqueBeanDefinitionE

      本文链接:https://www.haomeiwen.com/subject/qpbuoltx.html