“expected single matching bean but found”错误解析 1. 错误信息含义 “expected single matching bean but found”这一错误信息通常出现在使用Spring框架进行依赖注入时。它的意思是Spring容器在尝试根据某种条件(如类型、名称等)匹配并注入一个bean时,期望找到一个匹配的bean,但实际上找到了多个,导致无法决定应该注...
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 ... ...
spring boot expected single matching bean but found 2 专家官方解答 : 在sca(spring-cloud-alibaba)环境中遇到spring boot expected single matching bean but found 2的异常,通常是因为Spring Boot在尝试自动配置时找到了多个相同类型的Bean(本例中为DataSource)。结合你的场景,这可能发生在集成Nacos或其他数据源...
多数据源报错 expected single matching bean but found 2: xxx,xxx 问题: expected single matching bean but found 2: xxx,xxx 原因:在 Spring 容器中配置了两个类型Bean,Spring 容器将无法确定到底要用哪一个 Bean,因此异常发生了。 解决方法: 使用 @Qualifier 注释指定注入 Bean 的名称...