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事务传播行为内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • list,set,map,数组之间的相互转换详细解析

    list,set,map,数组之间的相互转换详细解析

    以下是对Java中list,set,map,数组之间的相互转换进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-09-09
  • Java并发编程之阻塞队列详解

    Java并发编程之阻塞队列详解

    这篇文章主要为大家详细介绍了Java并发编程之阻塞队列,什么是阻塞队列?主要的阻塞队列及其方法介绍,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • 详解Java多线程tryLock()方法使用

    详解Java多线程tryLock()方法使用

    本文主要介绍了Java多线程tryLock()方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • springboot结合maven实现多模块打包

    springboot结合maven实现多模块打包

    本文主要介绍了springboot借助maven完成多模块打包,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Java中的hashcode方法介绍

    Java中的hashcode方法介绍

    这篇文章主要介绍了Java中的hashcode方法介绍,还是比较不错的,这里分享给大家,供需要的朋友参考。
    2017-11-11
  • Java文件处理之使用XWPFDocument导出Word文档

    Java文件处理之使用XWPFDocument导出Word文档

    最近因项目开发的需要,整理了一份用JAVA导出WORD文档,下面这篇文章主要给大家介绍了关于Java文件处理之使用XWPFDocument导出Word文档的相关资料,需要的朋友可以参考下
    2023-12-12
  • Java 异步实现的几种方式小结

    Java 异步实现的几种方式小结

    这篇文章主要介绍了Java 异步实现的几种方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • SpringMVC高级开发功能实现过程解析

    SpringMVC高级开发功能实现过程解析

    这篇文章主要介绍了SpringMVC高级开发功能实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Java如何获取数组和字符串的长度(length还是length())

    Java如何获取数组和字符串的长度(length还是length())

    这篇文章主要介绍了Java如何获取数组和字符串的长度(length还是length()),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • SpringBoot实现列表数据导出为Excel文件

    SpringBoot实现列表数据导出为Excel文件

    这篇文章主要为大家详细介绍了在Spring Boot框架中如何将列表数据导出为Excel文件,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2024-02-02

最新评论