最近項目需要用到多數據源,使用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"/>