스프링 트랜잭션 전파
@Slf4j
@SpringBootTest
public class BasicTxTest {
@Autowired PlatformTransactionManager txManager;
@TestConfiguration
static class Config {
@Bean
PlatformTransactionManager transactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
}
}커밋, 롤백
@Test
void commit() {
log.info("트랜잭션 시작");
TransactionStatus status = txManager.getTransaction(new DefaultTransactionDefinition());
log.info("트랜잭션 커밋 시작");
txManager.commit(status);
log.info("트랜잭션 커밋 완료");
}
// 실행 로그
hello.springtx.propagation.BasicTxTest : 트랜잭션 시작
DataSourceTransactionManager : Creating new transaction with name [null]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
DataSourceTransactionManager : Acquired Connection [HikariProxyConnection@116893278 wrapping conn0: url=jdbc:h2:mem:88c20d05-2c65-41af-9e80-01c5648b88c7 user=SA] for JDBC transaction
DataSourceTransactionManager : Switching JDBC Connection [HikariProxyConnection@116893278 wrapping conn0: url=jdbc:h2:mem:88c20d05-2c65-41af-9e80-01c5648b88c7 user=SA] to manual commit
hello.springtx.propagation.BasicTxTest : 트랜잭션 커밋 시작
DataSourceTransactionManager : Initiating transaction commit
DataSourceTransactionManager : Committing JDBC transaction on Connection [HikariProxyConnection@116893278 wrapping conn0: url=jdbc:h2:mem:88c20d05-2c65-41af-9e80-01c5648b88c7 user=SA]
DataSourceTransactionManager : Releasing JDBC Connection [HikariProxyConnection@116893278 wrapping conn0: url=jdbc:h2:mem:88c20d05-2c65-41af-9e80-01c5648b88c7 user=SA] after transaction
hello.springtx.propagation.BasicTxTest : 트랜잭션 커밋 완료트랜잭션 두 번 사용




Last updated