spring aop动态切换数据源问题

时间:2022-12-25 16:35:47

最近项目需要用到多数据源,使用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"/>