美文网首页
Spring 事务参数详解

Spring 事务参数详解

作者: qyfl | 来源:发表于2019-12-30 23:47 被阅读0次

spring 中的事务使用起来很简单,只需要在需要使用事务的方法上加上 Transactional 注解就好了。这个注解是有一个 Propagation 的参数。这个参数有默认值,所以使用的时候可以不指定,这里简单说一下这个参数的作用。

Propagation 参数的可选项

  • REQUIRED

    这是默认参数。作用是判断当前方法中有无事务,如果有的话,就将方法中是事务加进去,如果没有则新建一个事务。

    例如:A 调用 B,B 调用 C。A->B->C,C方法加上了 Transactional 注解,A方法也加上了 Transactional 注解,则 A 的事务会和C的事务合并成一个事务。这需要看具体的业务是否需要这样的特性,如果不需要则配置其他的参数。

  • REQUIRES_NEW

    创建一个新的事务,如果当前已经有了一个事务,则挂起该事务。

    例如:A 调用 B,B 调用 C。A->B->C,C方法加上了 REQUIRES_NEW 参数。A 方法有一个事务,则调用到 C 的时候,则新建一个事务,并且挂起(暂停)A 的事务。如果A,B都没有事务,那 C 就会直接新建一个事务。

  • SUPPORTS

    如果当前有事务,则使用事务,如果当前没有事务则不使用事务。

    例如:A 调用 B,B 调用 C。A->B->C,C方法加上了 SUPPORTS 参数,但是A,B没有事务。这种情况下A,B,C都不会使用事务。

  • NOT_SUPPORTED

    当前方法运行的时候,如果已经有事务,则挂起,当前方法以无事务的状态运行。

    例如:A 调用 B,B 调用 C。A->B->C,C方法加上了 NOT_SUPPORTED 参数。A方法有一个事务,则会挂起(暂停)当前事务。然后运行C的代码。

  • MANDATORY

    当前方法必须运行在事务的环境中,如果当前方法运行的时候没有事务,则抛异常。

    例如:A 调用 B,B 调用 C。A->B->C,C方法加上了 MANDATORY 参数。但是A,B没有使用事务,则调用到C的时候抛出异常。

  • NEVER

    当前方法以没有事务的状态运行,如果当前已经有了一个事务则抛出异常。

    例如:A 调用 B,B 调用 C。A->B->C,C方法加上了 NEVER 参数。A方法有一个事务,则抛异常。如果A,B都没有事务则运行C。

  • NESTED

    当前方法运行的时候如果有事务,则嵌套一个子事务。如果运行的时候没有事务,则新建一个事务。

    例如:A 调用 B,B 调用 C。A->B->C,C方法加上了 NESTED 参数。A方法有一个事务,则新建一个子事务去运行C,C的事务结束了再去运行A的事务。如果A,B都没有事务,则C会新建一个事务去运行C。

相关文章

  • Spring之事务管理

    Spring事务管理(详解+实例)Spring详解(八)------事务管理 一. 概念 事务(Transacti...

  • Spring 事务参数详解

    spring 中的事务使用起来很简单,只需要在需要使用事务的方法上加上 Transactional 注解就好了。这...

  • Spring事务

    JerryTse—— Spring事务传播行为详解

  • 面试题总结 —— JAVA高级工程师

    一、1、Spring 事务的隔离性,并说说每个隔离性的区别 解答:Spring事务详解 2、Spring事务的传播...

  • 2018-06-09

    spring源码分析(八) 目录五、源码分析--6、Spring 事务原理详解----6.1、什么是事务(Tran...

  • Spring

    1.Spring事务的传播特性 2.Spring事务管理(详解+实例) 3.mem dump中unreachabl...

  • Index of contents

    一、事务 @TransactionalSpring事务传播行为详解Spring事务管理的两种方式try catch...

  • Spring中的事务处理

    1. spring 的事务属性 1.1 什么是事务属性 1.2 如何添加事务属性 1.3 事务属性详解 1.3.1...

  • Eureka部分参数详解

    spring cloud eureka 参数配置 - 简书 Eureka服务注册过程详解之IpAddress(详解...

  • 一文解析Spring编程式和声明式事务实例讲解

    接上一篇:一文解析Spring事务管理详解;通俗易懂,轻松掌握! Spring事务管理 Spring支持两种方式的...

网友评论

      本文标题:Spring 事务参数详解

      本文链接:https://www.haomeiwen.com/subject/samuoctx.html