PlatformTransactionManager가 resource별 lifecycle을 공통화한다

Application callback은 업무만 표현하고 JDBC manager가 Connection 획득·binding·완료를 공통 transaction lifecycle로 감싼다.

Service
Transaction boundary

어떤 use case가 원자적이어야 하는지 선언한다.

책임

업무 호출

Template
Callback 실행

성공 값을 반환하고 실패 throwable을 manager에 전달한다.

책임

제어 흐름

TX Manager
Resource lifecycle

Connection을 begin·bind하고 commit 또는 rollback한다.

책임

원자성

DataSource
Physical resource

실제 Connection을 대여하고 완료 뒤 반환받는다.

책임

DB session

핵심: 공통 transaction 추상화가 숨기는 것은 업무 경계가 아니라 resource별 begin·complete 반복 코드다.