PlatformTransactionManager의 정의

트랜잭션을 시작하고 커밋, 롤백하는 과정을 JDBC와 같은 특정 데이터 접근 기술에 종속되지 않게 하기 위해 추상화하여 만든 인터페이스


구조


기능

[인터페이스 전체 구조]

package org.springframework.transaction;
 
public interface PlatformTransactionManager extends TransactionManager {
 
	TransactionStatus getTransaction(@Nullable TransactionDefinition definition) throws TransactionException;
	
	void commit(TransactionStatus status) throws TransactionException;
	
	void rollback(TransactionStatus status) throws TransactionException;
 
}
  • getTransaction(): 트랜잭션을 시작합니다. 기존에 이미 진행중인 트랜잭션에 참여도 가능합니다.
  • commit(): 트랜잭션을 커밋합니다.
  • rollback(): 트랜잭션을 롤백합니다.

TransactionSynchronizationManager

트랜잭션 매니저는 스프링이 제공하는 트랜잭션 동기화 매니저를 통해 리소스를 동기화할 수 있습니다.

한 로직의 여러 작업을 트랜잭션으로 처리하려면 같은 커넥션에서 진행이 되어야 하기 때문에 트랜잭션 매니저는 트랜잭션 동기화 매니저에 커넥션을 보관하고 Repository가 커넥션이 필요할 때 보관된 커넥션을 꺼내 사용하면서 커넥션을 동기화할 수 있습니다.