2014년 3월 1일 토요일

[스프링3트랜잭션강좌]스프링프로그래밍적트랜잭션(TransactionManager사용),spring framework3.X transaction, 스프링 트랜잭션 매니저 스프링 트랜잭션 매니저는 getT...

[스프링3트랜잭션강좌]스프링프로그래밍적트랜잭션(TransactionManager사용),spring framework3.X transaction, 스프링 트랜잭션 매니저

 스프링 트랜잭션 매니저는 getTransaction()을 호출해서 새로운 트랜잭션을 시작하거나 현재 활성화된 트랜잭션을 얻을 수 있으며 commit(), rolllback() 메소드로 트랜잭션을 관리할 수 있게 하는 특정 기술에 비종속적인 방법을 제공한다. 
 
PlatformTransactionManager는 트랜잭션 관리를 위한 추상화 단위이므로 트랜잭션 관리 메소드는 항상 특정 기술과는 독립적으로 사용할 수 있다.
 
1. 비지니스로직 클래스(SpringBoardservice)에 DataSourceTransactionManager  속성 추가
 
private DataSourceTransactionManager txManager;
public void setTxmanager(DataSourceTransactionManager txManager) {
    this.txManager = txManager;
}
 
 2. 오라클 Transaction Manager DI(Dependency Injection)
 
    <!-- Transaction manager for a single JDBC DataSource -->
    <bean id="oracleTransactionManager     class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
      <property name="dataSource" ref=“dataSource" />
    </bean><bean id=“boardService"        class=“onj.oraclejava.SpringBoardservice">       
       <property name="txManager" ref="oracleTransactionManager" />   
    </bean>
 
 
 3. 비즈니스 로직 메소드
 
public void storeOption() {    
    TransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("oracleTransactionManager");
        def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
        TransactionStatus status = txManager.getTransaction(def);
        try {
             // TRAN1
         // TRAN2
         txManager.commit(status);
 } catch (MyException ex) {
         txManager.rollback(status);
        // throw ex;
         } 
}

댓글 없음:

댓글 쓰기