1. 解释“expected single matching bean but found 2”错误的含义 这个错误通常出现在使用Spring框架(特别是Spring Boot)进行依赖注入时。错误表明Spring容器在尝试自动装配(autowire)一个bean时,期望只找到一个符合条件的bean,但实际上找到了两个。这会导致Spring无法决定应该使用哪个bean,从而抛出异常。 2. 分析可能...
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 虽然不是手欠,但...
比如使用@Autowired引入,则可以使用@Qualifier("xxx")进行指定,或者直接将@Autowired替换为@Resource("xxx")。 另一个方法是在创建Bean的地方加Primary,比如如果是@Bean方式生成,则可以加@Primary注解;如果是SpringMVC的xml文件中的bean,则可以直接加primary="true"。 第一个方案比较灵活,但有些情况不适用,比如@Auto...
这是因为从bean容器中找到的bean不是唯一的,找到了2个匹配的bean,这时候注入bean就会报错。 比如说一个service接口有两个实现类 一、@Autowired方式注入 @Autowired是Spring提供的,默认是byType注入的,首先会在容器中查找对应类型的bean 如果找到结果刚好为一个,就将该bean装配给@Autowired指定的数据 如果找到的结果不...
关于expected single matching bean but found 2的问题 问题: org.springframework.context.support.AbstractApplicationContext refresh 警告: Exception encountered du
这个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里,直接启动应用,抛出来的异常信息是: ...
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.byd.mes.bussiness.service.siteoperation.activity.ExecuteActivityService] is defined: expected single matching bean but found 2: [executeActivityService, executeActivityForTesterService] ...
org.springframework.beans.factory.NoUniqueBeanDefinitionException:No qualifying bean of type [org.springframework.transaction.PlatformTransactionManager] isdefined:expected single matching bean but found 2:ddbTransactionManager,mysqlTransactionManager ... ...
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.byd.mes.bussiness.service.siteoperation.activity.ExecuteActivityService] is defined: expected single matching bean but found 2: [executeActivityService, executeActivityForTesterService] ...
多数据源报错 expected single matching bean but found 2: xxx,xxx 问题: expected single matching bean but found 2: xxx,xxx 原因:在 Spring 容器中配置了两个类型Bean,Spring 容器将无法确定到底要用哪一个 Bean,因此异常发生了。 解决方法: 使用 @Qualifier 注释指定注入 Bean 的名称...