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 명시 안될 경우, 롤백 실패
출처