温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spring事务的七种传播行为是什么

发布时间:2022-04-29 09:07:02 来源:亿速云 阅读:201 作者:zzz 栏目:开发技术

本篇内容介绍了“Spring事务的七种传播行为是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、什么是事务传播行为

什么叫事务传播行为?听起来挺高端的,其实很简单。
即然是传播,那么至少有两个东西,才可以发生传播。单体不存在传播这个行为。
所为的事务传播行为就是多个声明的事务的方法 相互调用的时候,这个事务该如何传递

Spring事务的七种传播行为是什么

如上图:methodA()调用methodB()那么这两个方法都显示了开启事务,那么methodB()开启一个新的事务,还是继续在methodA()这个事务里面去执行,就去决所谓的事务传播的一个行为

二、事务的传播行为有哪些?

Spring中定义了七种事务的传播行为,完整版的传播行为如下: 

Spring事务的七种传播行为是什么

  • REQUIRED(默认):它是Spring里面默认的事务传播行为,也就新当前存在事务就加入到当前事务去执行,如果不存在事务就创建一个事务

  • REQUIRE_NEW:它不管是否存在事务,它都会新开启一个事务来执行,新老事务相互独立的,外部事务抛出异常,并不会影响内部事务的一个正常提交

  • NESTED:如果当前存在事务,就嵌套当前事务中去执行,如果当前没有事务,那么就新建一个事务,类似 REQUIRE_NEW这个样一个传播行为

  • SUPPORTS:表示支持当前当前的事务,如果当前不存在事务,就以非事务的方式去执行

  • NOT_SUPPORT:表示以非事务的方式来运行,如果当前存在事务,就需要把当前的事务挂起来。

  • MANDATORY:它是一个强制的事务执行,如果当前不存在事务就抛出一个异常

  • NEVER:就是以非事务的方式来执行,如果当前存在事务则抛出一个异常

Spring的事务传播级别一般是不需要去定义的,默认就是 REQUIRED,除非在嵌套的事务情况下,需要去重点了解

“Spring事务的七种传播行为是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI