본문 바로가기
Java Web/Spring Boot

[Spring Boot] 트랜잭션 어노테이션

by 스응 2023. 4. 19.
728x90
728x90

#  관련 포스팅

  - 트랜잭션 개념 : https://young0105.tistory.com/229

 


@Transactional 어노테이션

  - 주로 Service Layer에서 insert, update, delete, 복잡한 select를 포함하는 메서드 위에 지정함

      · 메서드 호출 시 트랜잭션의 시작

      · 메서드 종료 시 트랜잭션의 종료 (정상 종료 → commit)

  - 트랜잭션 범위 내에서 실행되는 모든 작업이 원자성을 갖도록 보장함

  - 트랜잭션의 ACID 성질을 보장하기 위해 다양한 설정 옵션을 제공함

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Service // IoC 대상
public class UserService {
 
    // DAO 표준을 정의해둔 인터페이스
    @Autowired // 객체 생성 시 의존 주입 처리
    private UserRepository userRepository;
    
    // 트랜잭션 어노테이션
    @Transactional 
    public void createUser(SignUpFormDto signUpFormDto) {
        
        int result = userRepository.insert(signUpFormDto);
        
        if (result != 1) {
            throw new CustomRestfullException("회원 가입에 실패했습니다.", HttpStatus.INTERNAL_SERVER_ERROR); // 연산 오류
        }
        
    }
 
}
cs

 

 

320x100
반응형

댓글