## Spring Transaction 처리

1. context-mapper.xml(ContextLoaderListener)

<!-- 트랜잭션 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
</bean>

여기서 dataSource는 DB정보를 가진 bean이다.


2. 사용할 Service나 Controller에

@Resource(name = "transactionManager")
private PlatformTransactionManager transactionManager;

를 추가하여 위에서 추가한 빈을 불러오고 메소드 안에서

DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = transactionManager.getTransaction(def);

try {
   // 예외발생체크 코드
}catch{
   // 예외발생시 rollback
   transactionManager.rollback(status);
}
// 발생하지 않으면 commit
transactionManager.commit(status);


댓글 없음:

댓글 쓰기