본문 바로가기

BOOK/토비의스프링

[1권] 토비의 스프링 9일차

트랜잭션 속성

DefaultTransactionDefinition - 전파 속성 : PROPAGATION_REQUIRED

트랜잭션 전파

PROPAGATION_REQUIRED

  • 가장 많이 사용하는 트랜잭션 전파 속성
  • 진행 중인 트랜잭션이 없으면 새로 만들고 있다면 기존 트랜잭션에 참여한다.

PROPAGATION_REQUIRES_NEW

  • 항상 새로운 트랜잭션을 시작한다.

PROPAGATION_NOT_SUPPORTED

  • 트랜잭션을 무시한다.
  • AOP를 통해 여러개의 메소드를 적용하고 그 메소드중에서 특별난것을 뺄때 주로 사용한다.

 

  • 스프링이 제공하는 TransactionInterceptor에는 기본적으로 두가지 종류의 예외 처리 방식이 있다.
  • 런타임 예외가 발생하면 트랜잭션은 롤백된다.
  • 반면에, 타깃메소드가 런타임 예외가 아닌 체크 예외를 던지는 경우에는 이것을 예외상황으로 해석하지 않고 일종의 비즈니스 로직에 따른, 의미가 있는 리턴방식의 한가지로 인식하여 커밋한다.