Home » SPRING -9. 트랜젝션 관리

SPRING -9. 트랜젝션 관리

9.1. 트랜젝션

  • 트랜잭션(transaction)은 ATM, 데이터베이스 등의 시스템에서 사용되는 쪼갤 수 없다는 업무처리의 단위이다.
  • 예를 들어 사용자가 은행에서 돈을 찾는 업무가 생겼다고 했을 때, 필요한 정보를 조회하고 출금정보를 다 처리하여 사용자에게 돈을 지급할 때까지의 일련의 과정을 하나의 작업 단위로 보고, 이 업무를 처리하는 중 오류가 발생한다면 업무를 처리하기 전의 단계로 복구 되어야 한다.
  • 이러한 개념의 기능을 시스템에 제공하는 것이 트랜잭션이다.

9.2. Test Code 작성

  • 트랜잭션 처리를 테스트 하기 위해서 member 테이블에 정보를 저장하는 부분을 만든다.
    [ test.xml ]

[ TestDAO.java ]

[ serlvet-context.xml ]

  • serlvet-context 설정 파일에 transactionManager를 설정

9.2.1. 메소드를 사용한 명시적 트랜젝션 관리

[ TestService.java ]

  • 일련의 과정이 정상적으로 처리되었다면 commit을 날려 데이터를 저장하고, exception이 발생한다면 rollback을 날려 복구를 한다.

9.2.2. AOP 사용한 트랜젝션 관리

[ serlvet-context.xml ]

  • ‘insertAOPTran’의 이름을 가지는 메소드에 Exception이 발생할 경우 rollback을 하는 어드바이스를 ‘Service*’의 이름을 가지는 Bean에 적용.

[ TesrService.java ]

9.2.3. @Transactional 사용한 트랜젝션 관리

[ serlvet-context.xml ]

  • 등록된 bean 중에서 @Transactional이 붙은 클래스나, 인터페이스 또는 메소드를 찾아 트랜잭션 어드바이스를 적용해준다.

    [ TestService.java ]