dev._.note

[SPRING] Transaction 선언 본문

Dev/SPRING

[SPRING] Transaction 선언

Laena 2023. 2. 25. 08:46

Transaction

jdbc, mybatis에서 각각 Connection객체, SqlSession객체에 대해서 commit/rollback을 했던 것과 달리 spring에서는 트랜잭션관리자가 처리하게됨.(IOC)

스프링은 다양한 플랫폼(JTA:Java Transaction API, JPA:Java Persistence API, hibernate 등)에서 사용할 수 있도록 일련의 트랜잭션 관리자를 이용함. 그중 jdbc.datasource.DataSourceTransactionManager를 사용함.

1. Programmatic Transaction : @Transactional Annotation 방식

  • @Transactional 에서는 propagation element로 지정
  @Transactional(readOnly=...,
          isolation=...,
          propagation=...,
          timeout=...,
          rollbackFor=..., rollbackForClassName=...,
          noRollbackFor=..., noRollbackForClassName=...)

 

2. Declarative Transaction : 선언적 트랜잭션 (xml에 선언)

  • tx:method 에서는 propagation attributes 값으로 지정
  <tx:advice>
      <tx:attributes>
          <tx:method name="..."
                  read-only="..."
                  isolation="..."
                  propatation="..."
                  timeout="..."
                  rollback-for="..."
                  no-rollback-for="..." />
      </tx:attributes>
  </tx:advice>

'Dev > SPRING' 카테고리의 다른 글

[SPRING] Springboot  (0) 2023.03.06
[SPRING] Spring Security Filter  (0) 2023.03.03
[SPRING] AOP(Aspect Oriented Programming) 관점 지향 프로그래밍  (0) 2023.02.27
[SPRING] 스프링 개요  (1) 2023.02.26