스프링 초기화 시점에는 aop가 적용되지 않았을 수도 있습니다!


초기화 코드에 트랜잭션을 적용하려고 @Transactional을 붙이고 @PostConstruct와 같이 사용하면


초기화 코드에는 트랜잭션이 적용되지 않습니다.


초기화 코드가 먼저 호출되고 그 다음에 aop가 적용되기 때문입니다!


트랜잭션이 시작하고 끝을 내주어야 정상적인 흐름인데 이런 경우에는


ApplicationReadyEvent를 사용합니다!


이걸 붙여주면 트랜잭션 AOP를 포함한 스프링이 컨테이너가 완전히 생성되고 이벤트가 붙은 메서드를 호출합니다~


감사합니다~