当你在使用Spring框架进行依赖注入时,如果遇到错误“expected single matching bean but found 3”,这通常意味着Spring容器在尝试注入一个bean时,找到了多个匹配类型的bean,但你的代码或配置只期望一个bean。下面是针对这个问题的详细分析、解决方案和避免策略。 1. 错误信息含义 该错误信息表明,Spring容器在尝试自动装...
原因出在Autowired注解,Autowired是把spring容器中已经存在的bean注入(装配)到对象中,Autowired优先根据bean类型注入,如果该类型有一个bean,注入成功,如果有多个bean,则根据名字注入,注入bean的名字与属性的名字形同的bean,没有名字相同的会报expected single matching bean but found。 UserService.java中属性为createUser...
比如使用@Autowired引入,则可以使用@Qualifier("xxx")进行指定,或者直接将@Autowired替换为@Resource("xxx")。 另一个方法是在创建Bean的地方加Primary,比如如果是@Bean方式生成,则可以加@Primary注解;如果是SpringMVC的xml文件中的bean,则可以直接加primary="true"。 第一个方案比较灵活,但有些情况不适用,比如@Auto...
public Object resolveNotUnique(ResolvableType type, Map<String, Object> matchingBeans) throws BeansException { throw new NoUniqueBeanDefinitionException(type, matchingBeans.keySet()); } 1. 2. 3. 4. 正常来说这段代码, matchingBeans.keySet() 的长度应该为1 ,但是我找到了两个; 3 虽然不是手欠,但...
多数据源报错 expected single matching bean but found 2: xxx,xxx 问题: expected single matching bean but found 2: xxx,xxx 原因:在 Spring 容器中配置了两个类型Bean,Spring 容器将无法确定到底要用哪一个 Bean,因此异常发生了。 解决方法: 使用 @Qualifier 注释指定注入 Bean 的名称...
org.springframework.beans.factory.NoUniqueBeanDefinitionException:No qualifying bean of type [org.springframework.transaction.PlatformTransactionManager] isdefined:expected single matching bean but found 2:ddbTransactionManager,mysqlTransactionManager ... ...
这个demo来说明怎么排查一个常见的spring expected single matching bean but found 2的异常。 https://github.com/hengyunabc/spring-boot-inside/tree/master/demo-expected-single 调试排查 expected single matching bean but found 2 的错误 把工程导入IDE里,直接启动应用,抛出来的异常信息是: ...
敲黑板啦 ? 注入失败,出现如下的错误:Unsatisfied dependency expressed through field 's1'; 和“expected single matching bean but found 2:***,***”你需要加入:@Qualifier(value = "***") 如下: 1 2 3 4 5 6 7 8 @Autowired @Qualifier(value ="stringStore") ...
NoUniqueBeanDefinitionException: No qualifying bean of type 'xxx' available: expected single matching bean but found 2: x,y的解决办法 一. 异常现象 在利用Spring的@Autowired注入值的时候,出现了如下异常信息: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ...
org.springframework.beans.factory.NoUniqueBeanDefinitionException:expected single matching bean but found 2 这是因为从bean容器中找到的bean不是唯一的,找到了2个匹配的bean,这时候注入bean就会报错。 比如说一个service接口有两个实现类 一、@Autowired方式注入...