报错信息:
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")
。