잡동사니

[전자정부프레임워크] 트랜젝션 관리 본문

IT/Java

[전자정부프레임워크] 트랜젝션 관리

yeTi 2016. 6. 23. 14:25

안녕하세요. yeTi입니다.

오늘은 전자정부프레임워크에서 트랜젝션을 관리하는 방법에 대해 알아보겠습니다.



사용환경

전자정부프레임워크 : 3.5.1


  1. context-transaction.xml에 bean 설정
    1. <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
          <property name="dataSource" ref="dataSource"/>
      </bean>

      <tx:advice id="txAdvice" transaction-manager="txManager">
          <tx:attributes>
              <tx:method name="*" rollback-for="Exception"/>
          </tx:attributes>
      </tx:advice>

      <aop:config>
          <aop:pointcut id="requiredTx" expression="execution(* com.ubist.platform.**..impl.*Impl.*(..))"/>
          <aop:advisor advice-ref="txAdvice" pointcut-ref="requiredTx" />
      </aop:config>
  2. 소스단에서 다음과 같이 사용
    1. 정의
      1. @Resource(name = "txManager")
        protected DataSourceTransactionManager txManager;
    2. 트랜젝션 시작
      1. DefaultTransactionDefinition def = new DefaultTransactionDefinition();
        def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
        TransactionStatus txStatus = txManager.getTransaction(def);
    3. 트랜젝션 종료
      1. txManager.commit(txStatus); or txManager.rollback(txStatus);


Comments