Transactional 어노테이션의 동작 원리에 대해 설명해주세요. #129
Replies: 1 comment
-
Transactional 애노테이션이 적용된 메서드는 AOP를 통해 프록시 객체 상에서 작동됩니다. AOP에 의해 프록시 객체에서 메서드가 실행되는데 이때, 메서드 시작 전에 트랜잭션 시작이 먼저 수행됩니다. 그리고 메서드 실행 중 오류가 발생했다면 트랜잭션을 롤백시키는 로직, 오류가 발생하지 않았다면 트랜잭션을 커밋하여 DB에 정보를 반영하는 로직이 구성되어 있습니다. 이를 통해 우리는 트랜잭션에 대한 설정 코드 없이 Transactional 애노테이션만으로 트랜잭션 동작을 구현할 수 있습니다. 구체적인 세부 설명
1. AOP(Aspect-Oriented Programming)와 프록시 객체AOP의 개념: AOP는 공통 관심사를 모듈화하여 코드의 중복을 줄이고, 유지보수를 용이하게 하는 프로그래밍 패러다임입니다. 트랜잭션 관리와 같은 공통 기능을 분리하여 관리할 수 있습니다.프록시 객체: Spring은 2. 트랜잭션 시작메서드가 호출되면, 프록시 객체는 먼저 트랜잭션을 시작합니다. 이 과정은 3. 메서드 실행트랜잭션이 시작된 후, 실제 비즈니스 로직이 포함된 메서드가 실행됩니다. 이 메서드 내에서 데이터베이스에 대한 CRUD(Create, Read, Update, Delete) 작업이 수행됩니다.이 과정에서 예외가 발생할 수 있으며, 예외의 종류에 따라 트랜잭션의 처리 방식이 달라집니다. 4. 오류 처리 및 롤백메서드 실행 중 예외가 발생하면, 프록시 객체는 5. 커밋메서드 실행이 성공적으로 완료되면, 프록시 객체는 6. 설정 코드의 간소화
|
Beta Was this translation helpful? Give feedback.
-
.
Beta Was this translation helpful? Give feedback.
All reactions