스프링 트랜잭션


스프링 트랜잭션

@Transactional @Transactional 애노테이션을 사용하면 트랜잭션 프록시가 트랙잰션 처리 로직을 모두 가져간다. 트랜잭션을 처리하는 프록시를 적용해 준다. @Transactional과 Proxy @Transactional 애노테이션이 있으면 트랜잭션 AOP는 Proxy를 만들어서 스프링 컨테이너에 등록 실제 서비스 객체 대신에 프록시를 스프링 컨테이너 빈에 등록한다. 프록시 내부에서는 실제 서비스를 참조하게 된다. Client에서 Service를 호출하면 트랜잭션을 사용할 수 있는지 확인을 하게 된다. 트랜잭션 애노테이션이 붙어 있으면 트랜잭션을 적용하고 붙어 있지 않으면 트랜잭션을 적용하지 않는다. 프록시 내부 호출 문제 @Transactional을 적용하면 프록시 객체가 요청을 먼저 받아서 트랜잭션을 처리하고 실제 객체를 호출 그렇기에 트랜잭션을 적용하려면 항상 프록시를 통해서 대상 객체를 호출해야 된다. 프록시를 거치지 않고 대상 객체를 직접 호출하게 되면 A...


#Transactional #스프링 #트랜잭션 #프록시

원문링크 : 스프링 트랜잭션