스프링 트랜잭션 이해

트랜잭션 적용 위치

구체적이고 자세한 것이 높은 우선순위를 가짐

  1. 클래스의 메서드 (우선순위가 가장 높다.)
  2. 클래스의 타입
  3. 인터페이스의 메서드
  4. 인터페이스의 타입 (우선순위가 가장 낮다.)

근데 인터페이스에 @Transaction을 쓰는 것은 권장하지 않음

트랜잭션 AOP 주의 사항 - 프록시 내부 호출

Untitled

이게 정상적인 상황임

클라이언트가 기능을 호출하면 트랜잭션 기능을 담당하는 프록시가 대신 호출되어서 트랜잭션이 정상적으로 작동함.