Spring事务传播机制是什么

技术Spring事务传播机制是什么这篇文章将为大家详细讲解有关Spring事务传播机制是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。传播性行为分为以下几种PROPA

本文将详细讲解什么是Spring事务通信机制,文章内容质量较高,所以边肖将分享给大家参考。希望大家看完这篇文章能有所了解。

00-1010 propagation _ required-支持当前事务。如果目前没有交易,请创建新的交易。这是最常见的选择。PROPAGATION_SUPPORTS -支持当前事务。如果目前没有交易,将以非交易方式执行。支持当前事务,如果没有当前事务,将引发异常。propagation _ requirements _ new-创建一个新的事务,如果当前有事务,暂停当前事务。不支持传播-以非事务方式执行操作。如果当前有交易,暂停当前交易。PROPAGATION_NEVER -以非事务方式执行,如果事务当前存在,将引发异常。

服务A{

/**

*事务属性被配置为传播_必需。

*/

void method(){ 0

尝试{

service b . method();

} catch(some exception){ 0

//执行其他业务

}

}

}

00-1010例如,ServiceB.method的事务级别被定义为PROPAGATION_REQUIRED,所以在执行ServiceA.method时,

ServiceA.method已经启动了一个事务,然后调用ServiceB.method,ServiceB.method看到它已经在ServiceA.method中运行。

在事务中,不会启动新的事务。如果ServiceA.method运行并发现它不在事务中,它将为自己分配一个事务。这样,如果在ServiceA.method或ServiceB.method中的任何地方发生异常,事务将被回滚。即使ServiceB.method的事务已经提交,ServiceA.method也会在下一次失败时回滚,ServiceB.method也会回滚。

00-1010如果你目前在交易中,也就是以交易的形式运行,如果你目前不在交易中,那么就以非交易的形式运行。

00-1010必须在事务中运行。也就是说,他只能被一个父事务调用。否则,他会抛出异常。

00-1010我们设计了ServiceA.method的事务级别为PROPAGATION_REQUIRED,ServiceB.method的事务级别为PROPAGATION_REQUIRES_NEW _ new,所以当执行到ServiceB.method时,ServiceA.method的事务将被挂起,service eb。方法将启动一个新的事务,并等待服务eb。方法的事务要在他继续执行之前完成。他和PROPAGATION _ REQUIRED之间的事务差异在于事务的回滚程度。因为ServiceB.method是一个新事务,所以它是存在的。

两个不同的交易。如果已经提交了ServiceB.method,则ServiceA.method无法回滚,ServiceB.method也不会回滚。如果ServiceB.method回滚失败,如果他抛出的异常被ServiceA.method捕获,则ServiceA.method事务仍可能被提交。

00-1010例如,ServiceA.method的事务级别为PROPAGATION_REQUIRED,而ServiceB.method的事务级别为promotion _ not _ supported。

然后在执行到ServiceB.method时,暂停ServiceA.method的事务,ServiceB.method在非事务状态下完成运行,然后继续ServiceA.method的事务。

00-1010假设ServiceA.method的事务级别为PROPAGATION_REQUIRED,ServiceB.method的事务级别为PROPAGATION_NEVER,那么ServiceB.method将抛出异常。

00-1010理解嵌套的关键是保存点。他和promotion _ requirements _ new的区别在于promotion _ requirements _ new的另一个事务将独立于他的父事务,而Nested事务依赖于他的父事务,他的提交将与其父事务一起提交。也就是说,如果父事务最后回滚,他也会想回滚。嵌套事务的优点是他有一个保存点。

服务A{

/**

*事务属性被配置为传播_必需。

*/

void method(){ 0

尝试{

//保存点

service b . method();//PRODUCTION _ NESTED级别

} catch(some exception){ 0

//执行其他业务

servicec . method();

}

}

}也就是说,如果ServiceB.method回滚失败,那么ServiceA.method也会回滚到保存点,ServiceA.method可以选择另一个分支,比如ServiceC.method,继续执行尝试完成自己的事情。但这一交易在EJB标准中没有定义。

什么是Spring事务传播机制,希望在这里分享。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/131272.html

(0)

相关推荐

  • 辣椒炒鸡蛋的家常做法,青椒炒蛋炒辣椒要放油吗

    技术辣椒炒鸡蛋的家常做法,青椒炒蛋炒辣椒要放油吗肯定需要放油的辣椒炒鸡蛋的家常做法,煎鸡蛋所需的一、准备材料 主料:鸡蛋 200克辅料:辣椒(青、尖) 50克
    调料:植物油60克 料酒25克 盐 3克 各适量
    椒切细,鸡

    生活 2021年10月25日
  • Scala的标识符构成方式有哪些

    技术Scala的标识符构成方式有哪些本篇内容介绍了“Scala的标识符构成方式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

    攻略 2021年12月9日
  • IP代理软件怎么助力新媒体增长

    技术IP代理软件怎么助力新媒体增长小编给大家分享一下IP代理软件怎么助力新媒体增长,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、在各种方式

    攻略 2021年11月1日
  • 怎样深入学习JVM堆与JVM栈

    技术怎样深入学习JVM堆与JVM栈今天就跟大家聊聊有关怎样深入学习JVM堆与JVM栈,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。JVM栈解决程序的运行问题,即程

    攻略 2021年10月23日
  • 聊天技巧,你知道聊天有哪些技巧吗

    技术聊天技巧,你知道聊天有哪些技巧吗聊天是门技术活聊天技巧,无论是在线上还是面对面聊天,都是高情商、见识广,以及表达能力优秀的综合表现,做一个会聊天的人,可以广交朋友拓展人脉,以下9个技巧,让你轻轻松松会聊天1.让对方多

    生活 2021年10月21日
  • 如何在windows下安装MySQL5.0

    技术如何在windows下安装MySQL5.0小编给大家分享一下如何在windows下安装MySQL5.0,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了

    攻略 2021年11月1日