This extedns configuring JDBC and JPA to configure the TransactionManager.
Example #1 Wiring JDBC Transaction Manager
Note: @EnableTransactionManagement annotation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
@Configuration @ImportResource("application.yml") @EnableTransactionManagement public class AppConfig @Bean public DriverManagerDataSource datasource() { DriverManagerDataSource ds = new DriverManagerDataSource(); ds.setDriverClassName(environment.getRequiredProperty("spring.datasource.driver-class-name")); ds.setUrl(environment.getRequiredProperty("spring.datasource.url")); ds.setUsername(environment.getRequiredProperty("spring.datasource.username")); ds.setPassword(environment.getRequiredProperty("spring.datasource.password")); return ds; } @Bean public JdbcTemplate jdbcTemplate() { return new JdbcTemplate(datasource()); } @Bean public DataSourceTransactionManager transactionManager() { final DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(datasource()); return transactionManager; } } |
If you want to create a mock transaction manager, then you can do
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
package sample; import org.springframework.stereotype.Service; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionException; import org.springframework.transaction.TransactionStatus; public class MockedTransactionManager implements PlatformTransactionManager { @Override public TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException { return null; } @Override public void commit(TransactionStatus status) throws TransactionException { } @Override public void rollback(TransactionStatus status) throws TransactionException { } } |
Also,
…
Read more ›