✏️ Spring AOP
프록시 패턴: 어떤 객체를 사용하고자 할 때 해당 객체를 대리(proxy)하는 객체를 통해 접근하는 방식.
[Spring] AOP와 @Transactional의 동작 원리
오늘은 @Transactional의 동작 원리를 AOP와 함께 좀 더 자세하게 조사해보려고 한다.여기서 다루는 내용은 다음과 같다.AOP란 무엇이며 왜 사용하는가Spring AOP는 왜 프록시를 사용하는가@Transactional은
velog.io
- target에 대한 호출이 들어오면 AOP proxy가 이를 가로채서(intercept) 가져온다.
- AOP proxy에서 Transaction Advisor가 commit 또는 rollback 등의 트랜잭션 처리를 한다.
- 트랜잭션 처리 외에 다른 부가 기능이 있을 경우 해당 Custom Advisor에서 그 처리를 한다.
- 각 Advisor에서 부가 기능 처리를 마치면 Target Method를 수행한다.
- interceptor chain을 따라 caller에게 결과를 다시 전달한다.
✏️ @Transactional
@Transactional을 메서드 또는 클래스에 명시하게 되면 특정 메서드 또는 클래스가 제공하는 모든 메서드에 대해 내부적으로 AOP를 통해 트랜잭션 처리코드가 전 후 로 수행된다.
https://wjcodding.tistory.com/81
[Spring Data JPA] LazyInitializationException 오류 해결 방법
프로젝트를 진행하면서 처음보는 오류를 발견하였다. 🙄 LazyInitializationException 같은 백엔드 팀원분과 서칭해서 반나절만에 해결할 수 있었다. 환경 : AWS ec2 인스턴스에서 서버 배포 + Spring Data JPA
wjcodding.tistory.com
1. 서비스 단에 @Transactional 을 붙여놓은 상태에서 메서드가 종료되면, hibernate 의 session 종료
>> 영속성 컨텍스트도 사라짐. 이 영속성 컨텍스트는 트랜잭션과 생명주기를 같이 함.
>> service 호출 후 controller로 돌아오면 종료.!!!!!
'Spring > 트랜잭션' 카테고리의 다른 글
[JPA] Spring Data JPA의 findById (0) | 2025.02.06 |
---|---|
org.hibernate.ObjectDeletedException: deleted instance passed to merge: (1) | 2025.02.05 |
[Spring] 이벤트 실행, 비동기 처리 (1) | 2024.06.26 |