우리는 앞서 DB1편 스프링과 문제 해결 - 트랜잭션을 통해 스프링이 제공하는 트랜잭션 기능이 왜 필요하고, 어떻게 동작하는지 내부 원리를 알아보았다. 이번 시간에는 스프링 트랜잭션을 더 깊이있게 학습하고, 또 스프링 트랜잭션이 제공하는 다양한 기능들을 자세히 알아보자.
프록시 도입 후 전체 과정
con.setAutocommit(false)
를 지정하면서 시작한다.JdbcTemplate
을 포함한 대부분의 데이터 접근 기술들은 트랜잭션을 유지하기 위해 내부에서 트랜잭션 동기화 매니저를 통해 리소스(커넥션)를 동기화 한다.스프링이 제공하는 트랜잭션 AOP
@Transactional
애노테이션만 붙여주면 된다. 스프링의 트랜잭션 AOP는 이 애노테이션을 인식해서 트랜잭션을 처리하는 프록시를 적용해준다.@Transactional
org.springframework.transaction.annotation.Transactional