问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

spring的事务机制,以及是如何管理的

发布网友 发布时间:2022-04-13 00:03

我来回答

2个回答

懂视网 时间:2022-04-13 04:24

事务目的:为了使数据保持一致性和完整性。

一致性:一个业务链的数据状态是一致的,不能部分改变部分不改变。

完整性:一个业务链的数据是完整的,要么一起完成一起失败,不能部分写入成功,部分写入失败。

简单理解事务的一致性和完整性就是要么一起活,要么一起死,不能独活。(像是凄惨的爱情…………^?_?^)

数据库中的事物隔离级别

在了解事务隔离级别之前,先来了解一下数据中经常发生的可能导致业务逻辑失败的几种情况。

脏读

当一个事务正在访问数据,并且对数据进行了修改,并且还没有提交到数据库中;这时另一事务也访问了这个数据,然后使用了这个数据。

例如:张三的银行账户现在有1000,现在张三存入了200,那么在张三点击提交的时候,他媳妇(辛苦的张三在给媳妇存零花钱)在商场购物花了500。张三查看余额发现只有500了(张三懵逼了。。)。然后两人为了200吵了起来。

热心网友 时间:2022-04-13 01:32

事务管理可以帮助我们保证数据的一致性,对应企业的实际应用很重要。

Spring的事务机制包括声明式事务和编程式事务。

编程式事务管理:Spring推荐使用TransactionTemplate,实际开发中使用声明式事务较多。

声明式事务管理:将我们从复杂的事务处理中解脱出来,获取连接,关闭连接、事务提交、回滚、异常处理等这些操作都不用我们处理了,Spring都会帮我们处理。

声明式事务管理使用了AOP面向切面编程实现的,本质就是在目标方法执行前后进行拦截。在目标方法执行前加入或创建一个事务,在执行方法执行后,根据实际情况选择提交或是回滚事务。

如何管理的:

Spring事务管理主要包括3个接口,Spring的事务主要是由他们三个共同完成的。

1)PlatformTransactionManager:事务管理器--主要用于平台相关事务的管理

主要有三个方法:commit  事务提交;

rollback  事务回滚;

getTransaction  获取事务状态。

2)TransactionDefinition:事务定义信息--用来定义事务相关的属性,给事务管理器PlatformTransactionManager使用

这个接口有下面四个主要方法:

getIsolationLevel:获取隔离级别;

getPropagationBehavior:获取传播行为;

getTimeout:获取超时时间;

isReadOnly:是否只读(保存、更新、删除时属性变为false--可读写,查询时为true--只读)

事务管理器能够根据这个返回值进行优化,这些事务的配置信息,都可以通过配置文件进行配置。

3)TransactionStatus:事务具体运行状态--事务管理过程中,每个时间点事务的状态信息。

例如它的几个方法:

hasSavepoint():返回这个事务内部是否包含一个保存点,

isCompleted():返回该事务是否已完成,也就是说,是否已经提交或回滚

isNewTransaction():判断当前事务是否是一个新事务

声明式事务的优缺点:

优点

不需要在业务逻辑代码中编写事务相关代码,只需要在配置文件配置或使用注解(@Transaction),这种方式没有侵入性。

缺点

声明式事务的最细粒度作用于方法上,如果像代码块也有事务需求,只能变通下,将代码块变为方法。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
地下城与勇士的代理权是独家的还是都可以争取? 请问如果写关于地下城与勇士的书会被疼训告侵权吗? 地下城与勇士为啥什么都要从韩国先开始那 榉树小苗在北方能安全过冬吗 第27届奥运会上共决出多少枚金币,获得金牌总数最多的是哪个国家,我国选 ... 第27界奥运会上共决出多少枚金牌?哪个国家的最多?我国有几枚? 第27届奥运会上共决出多少块金牌?获得金牌最多的是哪个国家?我国选手... 27界奥运会共决出多少枚金牌 益盟五星波段满意度是多少 益盟五星波段怎么样 请问华为FRDAL|O买多少钱 华为手机FRD-AL10,型号:Hnr8价格多少 frdal10华为手机多少钱 华为frdal10手机报价 三星后摄像头坏了 可以换吗 三星c7后置摄像头坏了怎么办? 龙旗控股在南京什么时候 发offer 上海龙旗科技股份有限公司深圳分公司怎么样? 手机:齐乐A90怎么样?同价位的安卓手机哪个比它好? 杜军红的个人业绩 英语造句(一)~快来~ appeals to怎么用,举几个例句 求英文短语(常用的,要按A-Z的顺序排好分类,要有例句) 英语动词方面的问题,建议用白话文,我底子差。大神帮一下 用短语造句并翻译 酸萝卜的制法 求as的用法,要例句,谢谢 A appeal to B for sth造句 appeal...to的意思为上诉来造句 appeal... to造句 有吸引力的 什么软件可以将手机分身应用中另一个应用内容延时? 济南轻骑集团破产,股票持有者怎么办 超级分身宝可以多开快手吗?我想装两个 SST轻骑这个股票 st轻骑退市后股票怎么没了。 分析st轻骑股票 股市SST轻骑 ST轻骑的股票资金怎么办? 97年买的济南轻骑股票 请高手帮忙分析一下ST 轻骑这只股票。 我买了轻骑股票4万5千股现在停牌了,我想抛掉怎么办? 荣耀v8和荣耀8哪款手机好 轻骑集团的发展 荣耀v8和荣耀8哪个好?有什么区别? 荣耀8和v8哪个好 荣耀8和荣耀v8哪个好 荣耀V8和荣耀8哪个好 华为荣耀8和华为荣耀v8哪个好 荣耀v8和荣耀8哪个玩游戏好点 荣耀v8和荣耀8哪个颜值高?