Springboot手动提交事务

1.手动管理事务场景:

   事务的重要性,相信在实际开发过程中,都有很深的了解了。但是存在一个问题我们经常在开发的时候一般情况下都是用的注解的方式来进行事务的控制,说白了基于spring的7种事务控制方式来进行事务的之间的协调。 

  如果在没有办法使用注解的时候(比如多线程等),就要使用手动的方式来做事务管理了,这也就是编程式的事务管理。

2. 写法

1 在service内注入 这两个bean 
@Autowired
private PlatformTransactionManager platformTransactionManager;

@Autowired
private TransactionDefinition transactionDefinition;

2在 service方法内创建TransactionStatus
TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition);
通过 platformTransactionManager.commit(transactionStatus); 提交事务
通过 platformTransactionManager.rollback(transactionStatus); 回滚事务 

示例代码: 

@Autowired
private PlatformTransactionManager platformTransactionManager;

@Autowired
private TransactionDefinition transactionDefinition;

public void b(){
    TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition);

    UserIntegralInfo info = new UserIntegralInfo();
    info.setUserId(1L);
    info.setPoint(1);
    info.setOp("");
    info.setCurrIntegral(1);
    integralMapper.insert(info);
    platformTransactionManager.commit(transactionStatus);
    throw new RuntimeException();
}

 

posted @   许君闲乘悦  阅读(7145)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示