From b79e4e155f432cc9185d2a216a549b02096c6b9e Mon Sep 17 00:00:00 2001 From: haerong22 Date: Sun, 17 Jul 2022 21:12:33 +0900 Subject: [PATCH] #13 spring transaction - transaction aop init --- .../springtransaction/apply/InitTxTest.java | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 spring-transaction/src/test/java/com/example/springtransaction/apply/InitTxTest.java diff --git a/spring-transaction/src/test/java/com/example/springtransaction/apply/InitTxTest.java b/spring-transaction/src/test/java/com/example/springtransaction/apply/InitTxTest.java new file mode 100644 index 00000000..a28e9003 --- /dev/null +++ b/spring-transaction/src/test/java/com/example/springtransaction/apply/InitTxTest.java @@ -0,0 +1,53 @@ +package com.example.springtransaction.apply; + +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.event.EventListener; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.support.TransactionSynchronizationManager; + +import javax.annotation.PostConstruct; + +@SpringBootTest +public class InitTxTest { + + @Autowired + Hello hello; + + @Test + void go() { + + } + + @TestConfiguration + static class InitTxTestConfig { + + @Bean + Hello hello() { + return new Hello(); + } + } + + @Slf4j + static class Hello { + + @PostConstruct + @Transactional + public void initV1() { + boolean isActive = TransactionSynchronizationManager.isActualTransactionActive(); + log.info("Hello init @PostConstruct tx active={}", isActive); + } + + @EventListener(ApplicationReadyEvent.class) + @Transactional + public void initV2() { + boolean isActive = TransactionSynchronizationManager.isActualTransactionActive(); + log.info("Hello init ApplicationReadyEvent tx active={}", isActive); + } + } +}