2022-01-07 springboot手动提交事务

有时候在代码编写过程中,会有一些特殊情况,不能等事务自动提交,而是需要手动将事务提交,那么在spring中如何手动开启一个新事务,并提交呢?

@Autowired
private PlatformTransactionManager transactionManager;// 引入 (平台)事务管理器,Spring 事务策略的核心。
public void test() {
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);//新发起一个事务
    TransactionStatus status = transactionManager.getTransaction(def);// 获得事务状态
    try {
        // 业务代码
        transactionManager.commit(status);// 手动提交事务
    }catch (Exception e){
        // 异常的时候回滚
        transactionManager.rollback(status);
    }
}

已经验证可用
还在test补充项目中 可以搜索

public void testshiwu
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容