transactional 2

Spring에서 @Transactional

Spring에서 @Transactional은 AOP(Aspect-Oriented Programming)를 사용하여 트랜잭션을 처리 @Transactional의 동작 방식AOP Proxy 생성:Spring은 @Transactional이 선언된 메서드나 클래스에 대해 AOP 프록시를 생성이 프록시는 원래의 메서드를 감싸는 대리 객체로, 실제 메서드 호출 전에 트랜잭션을 시작하고 메서드 실행 후에 트랜잭션을 커밋하거나 롤백트랜잭션 시작:트랜잭션을 관리하는 AOP 프록시는 메서드 호출 전에 트랜잭션을 시작이때 트랜잭션 관리자는 데이터베이스 연결을 확보하고, 트랜잭션 상태를 관리메서드 실행:AOP 프록시가 실제 메서드를 호출이 메서드는 비즈니스 로직을 처리트랜잭션 커밋 또는 롤백:메서드 실행이 성공적으로 완료되면..

Java/Spring 2025.03.12

@Transactional 적용 안된 현상 정리

한 serviceImpl 안에서 insert로직이 2번 이루어 질때 하나의 로직이 실패 할시에 Transaction으로 rollback을 할 계획 이었다. 하지만 전에 진행하던 프로젝트와 똑같은 방법으로 진행하였지만 rollback이 안되고 exception이 일어나기 전까지의 로직이 수행되어서 DB에 저장되었는데 그 과정을 처리했던 방법 정리 구글링을 통해서 1. Checked Exception일 경우 2. 한 클래스 내 @Transaction이 설정되어있지 않은 메소드에서 @Transaction이 설정된 메소드를 호출할 경우 3. 메소드가 private일 경우 4. @Transactional을 선언한 함수 내부에 try-catch구문 크게 4가지를 찾아보고 대입해 보았지만 해당 문제와 무관하였다. 해..

Java/Spring 2022.04.09