본문 바로가기
Programing/Java & Spring

[SPRING3.0] 트랜잭션 설정

by 슈퍼와이비 2013. 9. 4.
반응형

스프링의 트랜잭션 동기화란?

"스프링은 데이터 액세스 기술(iBatis, Hibernate, JPA 등)과 트랜잭션 서비스 사이의 종속성을 제거하고 스프링이 제공하는 트랙잭션 추상 계층을 이용해서 트랜잭션 기능을 활용하도록 만들어준다."


스프링의 트랜잭션 핵심 인터페이스 : PlatformTransactionManager

PlatformTransactionManager의 구현 클래스

1. DataSourceTransactionManager : JDBC와 iBatis 를 사용하는 DAO에 적용

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dataSource" />

</bean>


2. JpaTransactionManager


3. HiernateTransactionManager


4. JmsTransactionManager, CciTransactionManager


5. JtaTransactionManager


DB가 하나라면 트랜잭션 매니저또한 하나만 등록돼야 한다.

DB가 여러개라도 DB가 종속적인 형태라면 글로벌트랜잭션을 구현해야한다. 글로벌 트랜잭션은 JTA트랜잭션을 이용하여 등록하고 하나만 등록하면 된다.

DB가 여러개라도 각 DB가 완전히 독립적인 형태로 사용하는 경우라면 DataSource와 Transaction Manager가 각각 등록되야한다. 예를 들어 DB가 두개라면 DataSource도 두개가 되야하고 Transaction Manager도 두개가 등록되야 한다.

반응형