- 트랜잭션 어노테이션은 클래스나 메서드에 추가하여 명시적으로 트랜잭션을 관리하고, 작업 성공/실패에 따라 자동으로 트랜잭션 또는 Rollback을 처리 🍃
- 트랜잭션은 프로кси 기술을 사용하여 작동하며, 실제 객체의 호출을 중개하여 추가적인 작업을 수행 🪄
- 트랜잭션 내부 처리 과정은 트랜잭션 인터셉터가 호출을 감지, 트랜잭션 매니저를 결정하고 데이터 소스를 사용하여 새로운 연결을 생성하여 자동 커밋을 막고 트랜잭션을 시작하고, 이 연결을 트랜잭션 동기화 매니저에 등록 🧰
- 트랜잭션 사용 시 주의사항:
- 프록시 적용을 방지하는 내부 호출 에러 를 방지하기 위해 내부 클래스를 분리 🗃️
- 프라이빗 메서드에는 트랜잭션이 적용되지 않음 🤫