DataSourceTransactionManager

添加事务:

  1. 传统JDBC事务管理,使用DataSource从数据源中获取connection
    通过api进行CRUD,之后手动commit、rollback。
  2. 应用spring提供的编程式的事务管理
  3. 使用spring的声明式事务处理

Spring的事务处理中,通用的事务处理流程是由抽象事务管理器AbstractPlatformTransactionManager来提供的,而具体的底层事务处理实现,由PlatformTransactionManager的具体实现类来实现,如 DataSourceTransactionManager 、JtaTransactionManager和 HibernateTransactionManager等。

SpringBoot中手动开启事务常用代码

@Controller
public class TransactionDemo {

    @Autowired
    private DataSourceTransactionManager transactionManager;

    @RequestMapping("test")
    public void test(){
        //可做单例
        DefaultTransactionDefinition definition = new DefaultTransactionDefinition();
        definition.setPropagationBehaviorName("PROPAGATION_REQUIRED");
        TransactionStatus transaction = transactionManager.getTransaction(definition);

//        TransactionStatus transaction = transactionManager.getTransaction(TransactionDefinition.withDefaults());
        try {
            //do something
            transactionManager.commit(transaction);
        }catch (Exception e){
            //do error
            transactionManager.rollback(transaction);
        }
    }
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐