时间:2021-05-19
理解事务之前,先讲一个你日常生活中最常干的事:取钱。
比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱;然后ATM出1000元钱。这两个步骤必须是要么都执行要么都不执行。如果银行卡扣除了1000块但是ATM出钱失败的话,你将会损失1000元;如果银行卡扣钱失败但是ATM却出了1000块,那么银行将损失1000元。所以,如果一个步骤成功另一个步骤失败对双方都不是好事,如果不管哪一个步骤失败了以后,整个取钱过程都能回滚,也就是完全取消所有操作的话,这对双方都是极好的。
事务就是用来解决类似问题的。事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。
在企业级应用程序开发中,事务管理必不可少的技术,用来确保数据的完整性和一致性。
在Spring中编写事务的方式,是使用Spring的TransactionTemplate。就想Spring中的其他模板类一样,TransactionTemplate利用一种回调机制,让用户编写需要在事务中编写的代码。
transactionTemplate.execute(new TransactionCallBack(){ public Object doInTransaction(TransactionStatus ts){ }});那么,这里的transactionTemplate是从哪里来的呢?它和TransactionManager是什么关系呢?
首先,这个transactionTemplate需要注入到业务bean中。
其次,TransactionTemplate中有一个成员变量,是TransactionManager类型的,也需要自动注入一个TransactionManager。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Spring对事务的支持有两种方式,一是自己编写事务,精确控制事务的边界,二是采用声明事务的方式,使用AOP来完成。无论哪种方式,我们都将使用一个Spring事
编程式事务在Spring中事务管理的方式有两种,编程式事务和声明式事务。先详细介绍一下两种事务的实现方式.配置类@Configuration@EnableTra
本文将深入研究Spring的事务管理。主要介绍@Transactional在底层是如何工作的。之后的文章将介绍:propagation(事务传播)和isolat
Spring事务管理Spring支持两种方式的事务管理:编程式事务管理:通过TransactionTemplate手动管理事务,实际应用中很少使用,使用XML配
前言在前面的内容,基本已经学习了事务的基本概念以及事务隔离级别等,接下来的几个小节,将学习怎么使用Spring进行事务管理,在Spring中,对事务进行管理有多