Icednut's Note

Spring Transaction의 이해 Part1 - Trasaction AOP 설정과 Java Configuration

2017-02-20

얼마전에 스프링 관련 커뮤니티에서 Spring에서 XML로 설정된 Transaction Advice에 대해서 Java Configuration 방식으로 어떻게 바꾸는지 질문이 올라왔었다.

Spring Transaction 질문



댓글들

댓글을 보고 좀 더 구체적으로 알아보고 싶다는 욕심이 생겨서 해결방법을 찾아보기 시작했다. 구글이나 스택오버플로우에서 찾아보니 딱히 만족스러운 방법이 없었으나 스프링 레퍼런스에서 힌트를 찾을 수 있었다.

17.5.9 Using @Transactional with AspectJ

(중략)

To weave your applications with the AnnotationTransactionAspect you must either build your application with AspectJ (see the AspectJ Development Guide) or use load-time weaving. See Section 11.8.4, “Load-time weaving with AspectJ in the Spring Framework” for a discussion of load-time weaving with AspectJ.

출처: http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/transaction.html#transaction-declarative-aspectj

결국 AspectJ를 Java config로 활성화 및 관련 PointCut 설정을 하고 Trasaction Advice를 사용자가 선언한 뒤 TransactionInterceptor에 사용자가 선언한 TxAdvice를 인식할 수 있는 인프라 빈을 주입하면 될 것 같다는 생각이 드는데, 막상 해보려고 하니 또 막막했다.

Tags: spring transaction