Spring Boot 中解决 'NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.transaction.TransactionManager' available' 错误
这个错误是由于 Spring 容器中有多个类型为 'org.springframework.transaction.TransactionManager' 的 bean,但没有明确指定使用哪一个 bean。解决方法有以下两种:
- 明确指定使用哪一个 bean
在需要使用 TransactionManager 的地方,使用 @Qualifier 注解明确指定使用哪一个 bean,例如:
@Autowired
@Qualifier('transactionManagerMysqlAccountActiveDB')
private TransactionManager transactionManager;
- 移除多余的 bean 或指定一个 primary bean
移除多余的 bean,或者在其中一个 bean 上使用 @Primary 注解指定为 primary bean,例如:
@Bean
@Primary
public TransactionManager transactionManagerMysqlAccountActiveDB() {
// ...
}
这样在需要使用 TransactionManager 时,就不需要再使用 @Qualifier 注解指定了,直接使用 @Autowired 注解即可。
原文地址: https://www.cveoy.top/t/topic/oKNC 著作权归作者所有。请勿转载和采集!