服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 在Spring中编写事务的介绍

在Spring中编写事务的介绍

2021-06-28 10:15李灿辉 Java教程

今天小编就为大家分享一篇关于在Spring中编写事务的介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

理解事务之前,先讲一个你日常生活中最常干的事:取钱。

比如你去atm机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱;然后atm出1000元钱。这两个步骤必须是要么都执行要么都不执行。如果银行卡扣除了1000块但是atm出钱失败的话,你将会损失1000元;如果银行卡扣钱失败但是atm却出了1000块,那么银行将损失1000元。所以,如果一个步骤成功另一个步骤失败对双方都不是好事,如果不管哪一个步骤失败了以后,整个取钱过程都能回滚,也就是完全取消所有操作的话,这对双方都是极好的。

事务就是用来解决类似问题的。事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。

在企业级应用程序开发中,事务管理必不可少的技术,用来确保数据的完整性和一致性。

在spring中编写事务的方式,是使用spring的transactiontemplate。就想spring中的其他模板类一样,transactiontemplate利用一种回调机制,让用户编写需要在事务中编写的代码。

?
1
2
3
4
transactiontemplate.execute(new transactioncallback(){
    public object dointransaction(transactionstatus ts){
    }
});

那么,这里的transactiontemplate是从哪里来的呢?它和transactionmanager是什么关系呢?

首先,这个transactiontemplate需要注入到业务bean中。

其次,transactiontemplate中有一个成员变量,是transactionmanager类型的,也需要自动注入一个transactionmanager。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接

原文链接:https://blog.csdn.net/li_canhui/article/details/85635707

延伸 · 阅读

精彩推荐