最近项目需要用到多数据源,使用aop切换了数据源始终 还是原来的数据源,后来感觉是事务引起的,就把 @Transactional注解去掉,就可以切换成功,到网上一查,原来是多数据源要配置多个事务管理器,配了多个事务管理器后 再把 @Transactional 加上,ok 了,
配上代码
<!--spring声明式事务管理--> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="mysqlDataSource" /> <qualifier value="tx1"/> </bean> <bean id="txManager2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="sqlServerDataSource" /> <qualifier value="tx2"/> </bean> <tx:annotation-driven transaction-manager="txManager"/> <tx:annotation-driven transaction-manager="txManager2"/>