# SPRING-트랜잭션

김유미·2022년 4월 24일
0

SPRING

목록 보기
3/4

트랜잭션이란?

  • 여러 실행 과정을 하나의 행위로 묶어서 관리하는 단위
  • 트랜잭션 범위 내에 있는 처리 과정 중 하나라도 예외가 발생할 경우 전체 과정을 취소시키
    는 역할
  • 즉, 모두 반영하거나 모두 반영하지 않는 방식
  • 웹 개발에서는 대표적으로 서비스의 메소드 마다 트랙잭션 단위로 잡는다.

<스프링 트랜잭션 사용>

  • TransactionManager를 이용한 직접 commit, rollback
  • <tx:advice> 태그 이용
  • 어노테이션 이용

트랜잭션 설정

<TransactionManager를 이용한 직접 commit, rollback>

  1. 빈 설정 및 주입

    < bean id =“transactionManager”
    class=“org.springframework.jdbc.datasource.DataSourceTransactionManager”>
    < property name=“dataSource” ref=“dataSource” />

    @Autowired
    PlatformTransactionManager transactionManager;

  2. commit, rollback
    TransactionStatus status = transactionManager.getTransaction(new
    DefaultTransactionDefinition());
    transactionManager.commit(status);
    transactionManager.rollback(status)

<<tx:advice> 태그 이용>

빈 설정

<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name=“메소드명" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="execution( public spring.Service.*(..) )"
id="firstTransactionMethod" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="firstTransactionMethod" />
</aop:config>

※ <tx:advice> 태그는 트랜잭션 적용을 위해 AOP를 통해 이루어진다.

<어노테이션 이용>

  1. 빈 설정
    <tx:annotation-driven transaction-manager="transactionManager”/>

  2. 어노테이션 설정
    @Transaction(rollbackFor=Exception.class)

0개의 댓글