Spring事务的七种传播行为

 更新时间:2022年04月28日 17:07:59   作者:​ 请叫我黄同学   ​  
这篇文章主要介绍了Spring事务的七种传播行为,文章围绕主题的相关资料展开详细的内容解说,具有一定的参考价值,需要的小伙伴可以参考一下

一、什么是事务传播行为

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

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

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

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

  • REQUIRED(默认):它是Spring里面默认的事务传播行为,也就新当前存在事务就加入到当前事务去执行,如果不存在事务就创建一个事务
  • REQUIRE_NEW:它不管是否存在事务,它都会新开启一个事务来执行,新老事务相互独立的,外部事务抛出异常,并不会影响内部事务的一个正常提交
  • NESTED:如果当前存在事务,就嵌套当前事务中去执行,如果当前没有事务,那么就新建一个事务,类似 REQUIRE_NEW这个样一个传播行为
  • SUPPORTS:表示支持当前当前的事务,如果当前不存在事务,就以非事务的方式去执行
  • NOT_SUPPORT:表示以非事务的方式来运行,如果当前存在事务,就需要把当前的事务挂起来。
  • MANDATORY:它是一个强制的事务执行,如果当前不存在事务就抛出一个异常
  • NEVER:就是以非事务的方式来执行,如果当前存在事务则抛出一个异常

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

到此这篇关于Spring事务的七种传播行为的文章就介绍到这了,更多相关Spring事务传播行为内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 教你怎么使用Optional处理null

    教你怎么使用Optional处理null

    今天教各位小伙伴怎么使用Optional处理null,文中有非常详细的代码示例,对正在学习java的小伙伴们有很大的帮助,需要的朋友可以参考下
    2021-05-05
  • Spring Boot Jwts Token生成方法示例

    Spring Boot Jwts Token生成方法示例

    这篇文章主要为大家介绍了Spring Boot Jwts Token生成方法示例,非适合java初学者,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 判断以逗号分隔的字符串中是否包含某个数的实例

    判断以逗号分隔的字符串中是否包含某个数的实例

    下面小编就为大家带来一篇判断以逗号分隔的字符串中是否包含某个数的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • mybatis某些字段无法映射成功的解决

    mybatis某些字段无法映射成功的解决

    这篇文章主要介绍了mybatis某些字段无法映射成功的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 基于Eclipse中SVN图标不显示的解决方法

    基于Eclipse中SVN图标不显示的解决方法

    本篇文章是对Eclipse中SVN图标不显示的解决方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Java递归寻路实现,你真的理解了吗

    Java递归寻路实现,你真的理解了吗

    递归就是一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,需要的朋友可以参考下
    2021-08-08
  • Mapstruct @Mapper @Mapping 使用小结

    Mapstruct @Mapper @Mapping 使用小结

    这篇文章主要介绍了Mapstruct @Mapper @Mapping使用小结,他们用于各个对象实体间的相互转换,例如数据库底层实体转为页面对象,Model 转为 DTO, DTO 转为其他中间对象, VO 等等,相关转换代码为编译时自动产生的新文件和代码,需要的朋友可以参考下
    2023-09-09
  • 带你快速搞定java多线程

    带你快速搞定java多线程

    这篇文章主要介绍了java多线程编程实例,分享了几则多线程的实例代码,具有一定参考价值,加深多线程编程的理解还是很有帮助的,需要的朋友可以参考下
    2021-07-07
  • Mybatis执行SQL时多了一个limit的问题及解决方法

    Mybatis执行SQL时多了一个limit的问题及解决方法

    这篇文章主要介绍了Mybatis执行SQL时多了一个limit的问题及解决方法,Mybatis拦截器方法识别到配置中参数supportMethodsArguments 为ture时会分页处理,本文结合示例代码给大家讲解的非常详细,需要的朋友可以参考下
    2022-10-10
  • java编程中字节流转换成字符流的实现方法

    java编程中字节流转换成字符流的实现方法

    下面小编就为大家带来一篇java编程中字节流转换成字符流的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01

最新评论