복붙노트

[SPRING] Spring : 주석 중심 트랜잭션 관리자

SPRING

Spring : 주석 중심 트랜잭션 관리자

저는 새로운 JPA + Spring 프로젝트를 준비 중입니다. 다음과 같은 차이점은 무엇입니까?

<tx:annotation-driven transaction-manager="transactionManager" />

<tx:annotation-driven mode="aspectj" transaction-manager="transactionManager" />

내 applicationContext.xml에?

해결법

  1. ==============================

    1.프록시와 바이트 코드 weaven 측면에는 큰 차이가 있습니다. 프록시는 호출이 "외부 공간"에서 오는 경우에만 가로 채기가 가능하지만 객체 자체에서 호출 한 경우에는 가로 채지 않습니다 (this.transactionalMethod ()).

    프록시와 바이트 코드 weaven 측면에는 큰 차이가 있습니다. 프록시는 호출이 "외부 공간"에서 오는 경우에만 가로 채기가 가능하지만 객체 자체에서 호출 한 경우에는 가로 채지 않습니다 (this.transactionalMethod ()).

    즉, 메소드 T가 트랜잭션 주석을 가지고 메소드 B가 "this.T ()"로 T를 호출하면 프록시가 호출되지 않으므로 (T의 경우) 프록시가 호출되지 않으므로 이 경우 거래 처리!

    AspectJ를 사용하면 트랜잭션 처리 코드는 T의 바이트 코드로 해석되며, 호출이 객체 자체에서 발생 했든 다른 객체에서 시작 되든 관계없이 실행됩니다.

  2. ==============================

    2.문서는 다음과 같이 말합니다.

    문서는 다음과 같이 말합니다.

    개발자 모드에서 어떤 모드가 사용되는지는 중요하지 않습니다.

  3. from https://stackoverflow.com/questions/4155991/spring-annotation-driven-transaction-manager by cc-by-sa and MIT license