欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Spring事务的七种传播行为

时间:2022-06-09 09:21:00|栏目:JAVA代码|点击:

一、什么是事务传播行为

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

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

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

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

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

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

上一篇:IDEA安装阿里巴巴编码规范插件的两种方式详解(在线安装和离线安装)

栏    目:JAVA代码

下一篇:解决springboot利用ConfigurationProperties注解配置数据源无法读取配置信息问题

本文标题:Spring事务的七种传播行为

本文地址:http://www.codeinn.net/misctech/204261.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有