[ACCEPTED]-How to wire up a DataSourceTransactionManager with @Configuration @Beans instead of XML-spring

Accepted answer
Score: 13

Since DataSourceTransactionManager has a constructor that takes DataSource, you 2 can do the following (otherwise you would 1 need to call setDataSource()):

@Bean   
public DataSourceTransactionManager txManager() {
    return new DataSourceTransactionManager(myDataSource());
}

See also:

Score: 6

You can also use multiple transactionManager 2

     @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 use @Transactional you can define 1 the transactionManager you want :

@Transactional("txManager1")
public Object getSomeData(){
    ...
}

@Transactional("txManager2")
public Object getSomeOtherData(){
    ...
}

More Related questions