You can also use multiple transactionManager
@Configuration public class MyConfig { @Bean public DataSource myDataSource1() { return new DataSource(); /// and set properties, etc. } @Bean @Qualifier("txManager1") public DataSourceTransactionManager txManager1() { return new DataSourceTransactionManager(myDataSource1()); } @Bean public DataSource myDataSource2() { return new DataSource(); /// and set properties, etc. } @Bean @Qualifier("txManager2") public DataSourceTransactionManager txManager2() { return new DataSourceTransactionManager(myDataSource2()); } }
Then, when you use @Transactional, you can determine the required transactionManager:
@Transactional("txManager1") public Object getSomeData(){ ... } @Transactional("txManager2") public Object getSomeOtherData(){ ... }
source share