트랜잭션 매니저를 직접 설정하여 관리

소스 코드 파일 또는 xml 파일로 직접 트랜잭션 관리 내용을 설정할 수 있다. 트랜잭션 관리 주체는 추상화된 PlatformTransactionManager 인터페이스이며, DB와 관련하여 작업을 처리해야 하므로 관련된 DataSource 인터페이스 역시 빈으로 등록되어야 한다. JPA와 연동하기 위하여 EntityManagerFactoryBeanDataSource를 세팅해주어야 한다.

@Configuration
@EnableTransactionManagement
public class JpaConfig{

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(){
        final LocalContainerEntityManagerFactoryBean em = 
				new LocalContainerEntityManagerFactoryBean();
        em.setDataSource(dataSource());
        ...
        ...

        return em;
    }

	
    @Bean
    public DataSource dataSource() {
        final DriverManagerDataSource dataSource = new DriverManagerDataSource();
				
				...
				...

        return dataSource;
    }

    @Bean
    public PlatformTransactionManager transactionManager(){
        JpaTransactionManager transactionManager
                = new JpaTransactionManager();   
        transactionManager.setEntityManagerFactory(
                entityManagerFactoryBean().getObject() );
        return transactionManager;
    }
}

@Transactional을 통한 트랜잭션 관리

Rollback rule 설정