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();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。