事务管理器报错TransactionManager available:expected single matching bean but found 2: tx,transactionManager

报错信息:

org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.transaction.TransactionManager' available: expected single matching bean but found 2: tx,transactionManager

大致意思就是有两个事务管理器,tx,transactionManager,你到底是想使用哪个呢?

@Transactional有两个不同的包

  • spring包下的tx:org.springframework.transaction.annotation.Transactional
  • javax包(一般jdk7)下的transactionManager:javax.transaction.Transactional

一般情况下上述问题出现在jdk7项目迁移上,在jdk7中有些项目使用的是javax的事务管理器。

解决方案:只需要替换成spring的事务管理器即可,替换成spring包下的,然后修改注解为@Transactional(value = "tx")

你可能感兴趣的:(java,SpringBoot,java,spring)