TransactionManager란

무지성개발자·2023년 10월 10일
0

TransactionManager

TransactionManager는 Spring에서 트랜잭션을 제어하기 위해 트랜잭션 기능을 추상화 한 것이다.

Spring에서 TransactionManager를 상속 받은 PlatformTransactionManager가 트랜잭션 매니저의 핵심 인터페이스다.PlatformTransactionManager의 구현체들은 getTransaction(), commit(), rollback()을 각자의 방법으로 구현하여 여러 작업을 논리적으로 하나의 작업으로 묶어 처리하도록 한다.

  • DataSourceTransactionManager
    • 가장 일반적으로 사용되는 TransactionManager로 JDBC기반의 작업을 관리한다. Mybatis를 사용한다면 이 트랜잭션 매니져를 사용해야한다.
  • HibernateTransactionManager
    • Hibernate ORM 프레임워크 사용시 필요하며 Hibernate 세션을 사용하여 트랜잭션을 관리한다.
  • JpaTransactionManager
    • JPA 사용시 필요하며 JPA EntityManager를 사용하여 트랜잭션을 관리.
  • JmsTransactionManager
    • 자바 메시징 시스템을 사용할 때 필요하며 메시지 큐에서 트랜잭션을 관리.
  • JtaTransactionManager
    • 하나 이상의 DB나 글로벌 트랜잭션을 적용할 때 필요.
    • 여러 개의 트랜잭션 리소스에 대한 작업을 하나의 트랜잭션으로 묶을 수 있음.
      (예 DB + JMS를 하나의 작업으로 묶을 때)
    • 여러 서버에 분산처리 하는 작업을 트랜잭션으로 묶어주기도 함.

한 줄평 : 트랜잭션 매니저를 직접 선택해본 적이 없어 이렇게 많은 줄 몰랐다.

profile
no-intelli 개발자 입니다. 그래도 intellij는 씁니다.

0개의 댓글