스프링 초기화 시점에는 aop가 적용되지 않았을 수도 있습니다!
초기화 코드에 트랜잭션을 적용하려고 @Transactional을 붙이고 @PostConstruct와 같이 사용하면
초기화 코드에는 트랜잭션이 적용되지 않습니다.
초기화 코드가 먼저 호출되고 그 다음에 aop가 적용되기 때문입니다!
트랜잭션이 시작하고 끝을 내주어야 정상적인 흐름인데 이런 경우에는
ApplicationReadyEvent를 사용합니다!
이걸 붙여주면 트랜잭션 AOP를 포함한 스프링이 컨테이너가 완전히 생성되고 이벤트가 붙은 메서드를 호출합니다~
감사합니다~
해당 댓글은 삭제되었습니다.
트랜잭션 안에다가 초기화를 넣는 그런 행위 예술입니다!