Transaction Part2

최대 1 분 소요

Spring에서 Transaction의 처리(ACID의 유지)

  • class 또는 method 에 @Transactional을 선언하여 사용합니다.
    자바에서 transaction을 시작하는 방법

  • JDBC의 기본적인 Transaction 처리 방법
      Connection connection = dataSource.getConntection();
        
      try(connection){
          connection.setAutoCommit(false);
        
          connection.commit();
      }catch(Exception e){
          connection.rollback();
      }
    
      connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
        //TRANSACTOIN ISOLATION LEVEL 설정
      Savepoint savePoint = connection.setSavepoint();
      connection.rollback(savePoint);
      //savepoint : nested propagation option
    
  • Spring의 Transaction 처리 방법(선언적 트랜잭션 방식)
      public class exampleService{
          @Transactional
          public String insertExample(Example example){
          //business code
          return seq;
          }
      }
    
      @Configuration
      @EnableTransactionManagement
      public class springTransaction{
        @Bean
        public PlatforTransactionManager ptManager(){
            return ptManager;  
        }  
      }
    
    • @Transaction이 달린 public method에 대해 내부적으로 데이터베이스 transaction 코드를 실행합니다.