본문 바로가기
Spring

Spring Framework : Transaction

by autumnly 2017. 6. 14.


Spring 에서의 트랜잭션 처리방법엔 크게 선언에 의한 트랜잭션, 프로그램에 의한 트랜잭션 두 가지가 있다.

여기서는 선언에 의한 트랜잭션에 대해 알아볼 것이다.


선언에 의한 트랜잭션 방법에는 다시 두 가지가 있다.



  1. AOP와 tx네임스페이스를 이용하는 방법
  2. @Transactional 어노테이션을 이용하는 방법






    AOP와 tx네임스페이스를 이용하는 방법

어노테이션 방식에 비해 선언은 조금 복잡해보이지만 
코드에 전혀 영향을 주지 않고 일괄적으로 트랜잭션을 적용하거나 변경할 수 있다.
따라서 트랜잭션을 적용할 대상이 아무리 늘어나도 번거롭게 트랜잭션 관련 설정을 변경해주거나 추가할 필요가 없다.
예를들어 설정을 통해 get으로 시작하는 모든 메소드에 대해 읽기전용 속성을 부여할 수 있다.


   @Transactional 어노테이션을 이용하는 방법

@Transactional 은 tx네임스페이스 방식에 비해 설정이 간단하고 원하는 클래스, 메소드에 어노테이션을 붙여주기만 하면 된다.
하지만 tx네임스페이스 방식에서와 같이 get으로 시작하는 모든 메소드에 대해 공통 속성을 부여하고자 한다면
모든 메소드에 어노테이션을 붙여줘야 한다.
결국 클래스나 메소드에 어노테이션이 잔뜩 붙게된다.
하지만 tx네임스페이스 방식에 비해 매우 세밀하게 트랜잭션 속성을 부여할 수 있다.