[SPRING] Spring : 주석 중심 트랜잭션 관리자
SPRINGSpring : 주석 중심 트랜잭션 관리자
저는 새로운 JPA + Spring 프로젝트를 준비 중입니다. 다음과 같은 차이점은 무엇입니까?
<tx:annotation-driven transaction-manager="transactionManager" />
과
<tx:annotation-driven mode="aspectj" transaction-manager="transactionManager" />
내 applicationContext.xml에?
해결법
-
==============================
1.프록시와 바이트 코드 weaven 측면에는 큰 차이가 있습니다. 프록시는 호출이 "외부 공간"에서 오는 경우에만 가로 채기가 가능하지만 객체 자체에서 호출 한 경우에는 가로 채지 않습니다 (this.transactionalMethod ()).
프록시와 바이트 코드 weaven 측면에는 큰 차이가 있습니다. 프록시는 호출이 "외부 공간"에서 오는 경우에만 가로 채기가 가능하지만 객체 자체에서 호출 한 경우에는 가로 채지 않습니다 (this.transactionalMethod ()).
즉, 메소드 T가 트랜잭션 주석을 가지고 메소드 B가 "this.T ()"로 T를 호출하면 프록시가 호출되지 않으므로 (T의 경우) 프록시가 호출되지 않으므로 이 경우 거래 처리!
AspectJ를 사용하면 트랜잭션 처리 코드는 T의 바이트 코드로 해석되며, 호출이 객체 자체에서 발생 했든 다른 객체에서 시작 되든 관계없이 실행됩니다.
-
==============================
2.문서는 다음과 같이 말합니다.
문서는 다음과 같이 말합니다.
개발자 모드에서 어떤 모드가 사용되는지는 중요하지 않습니다.
from https://stackoverflow.com/questions/4155991/spring-annotation-driven-transaction-manager by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 3 - 다른 객체 속성을 기반으로 런타임에 동적 Autowiring (0) | 2019.01.13 |
---|---|
[SPRING] 생명주기 이벤트에서 BeanFactoryPostProcessor 및 BeanPostProcessor (0) | 2019.01.13 |
[SPRING] spring.handlers 및 spring.schemas에 대한 이해가 필요합니다. (0) | 2019.01.13 |
[SPRING] application.properties에서 정적 변수에 값을 할당하는 방법은 무엇입니까? (0) | 2019.01.13 |
[SPRING] 동일한 지속성 단위로 여러 Db를 읽는 중입니까? (0) | 2019.01.13 |