Spring/Spring

[Spring][Data Access] 1-4. Transaction Manager: Declarative Transaction Management

noahkim_ 2024. 8. 11. 10:44

1. Declarative Transaction Management

  • 선언적으로 트랜잭션 정의 (Annotation, XML)
항목 설명
특징
비침투적 관리 (코드 내에서 직접 트랜잭션 제어 X)
핵심 기술
Spring AOP 사용 → 트랜잭션 시작/커밋/롤백 경계를 프록시로 자동 처리
제어 확장성
AOP의 Advice로 커스터마이징 가능 (예: 로깅, 타이밍 등 추가 가능)
기본 롤백 규칙
RuntimeException 및 Error 발생 시 자동 롤백
Checked Exception 처리
명시적으로 rollbackFor 속성 지정 필요

 

예제) annotation (rollback)

더보기
public class CustomCheckedException extends Exception {
    public CustomCheckedException(String message) {
        super(message);
    }
}
@Transactional(rollbackFor = CustomCheckedException.class)
public void insert_checkedexception_rollback() throws CustomCheckedException {
    System.out.println("추가 완료");
    memberRepository.save("user");

    throw new CustomCheckedException("checked exception! rollback...");
}
  • 롤백 성공
  • rollbackFor 명시 안될 경우, 롤백 실패

 

출처