Spring中的事务传播行为有哪些?

IT科技类资讯2025-11-05 02:07:0253

今天,事务我给大家分享一下,传播我对Spring传播行为的事务理解。

1、传播事务传播行为

在日常开发中,事务我们经常会存在多个声明了事务的传播方法相互调用,在这种情况下,事务会存在嵌套两个或两个以上事务的传播情况,所谓事务传播行为就是事务指这些事务之间的传播规则。来看这样一段代码:

@Transaction(Propagation = REQUIRED_NEW)

public void methodA(){

}

@Transaction(Propagation = REQUIRED)

public void methodB(){

methodA();

}

在这段代码中,传播methodB()调用了methodA(),事务两个方法都显示的传播开启了事务。methodA()是事务开启一个新事务,还是传播继续在methodB()这个事务中执行?就取决于事务的传播行为规则的定义。

2、事务事务嵌套

事务嵌套是免费信息发布网指两个或两个以上开启的事务的方法嵌套调用,在这种情况下,需要制定这些事务之间的传播行为规则。在Spring中,一共定义了7种内置的事务嵌套传播行为:

第1种:REQUIRED,它是Spring默认的事务传播行为。表示如果当前存在事务,则加入这个事务,如果不存在事务,就新建一个事务。

第2种:REQUIRE_NEW:表示不管是否存在事务,都会新建一个事务,新建的事务和原来已经定义的事务相互独立。外部事务抛出异常回滚不会影响内部事务的正常提交。

第3种:NESTED:如果当前存在事务,源码下载则嵌套在当前事务中执行。如果当前没有事务, 则新建一个事务,类似于REQUIRE_NEW。

第4种:SUPPORTS:表示支持当前事务,如果当前不存在事务,以非事务的方式执行。

第5种:NOT_SUPPORTED:表示以非事务的方式来运行,如果当前存在事务,则把当前事务挂起。

第6种:MANDATORY:强制事务执行,若当前不存在事务,则抛出异常.

第7种:NEVER:以非事务的方式执行,如果当前存在事务,则抛出异常。

Spring事务传播一般不需要开发人员显式定义,默认就是PROPAGATION_REQUIRED,只要在嵌套事务的情况下需要重点了解。

本文地址:http://www.bzve.cn/news/391b64698962.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

电脑端设置主页教程(简单教你如何在电脑上设置主页)

Kafka是靠什么机制保持高可靠,高可用的?

外媒评IBM量子计算机:不会改变一切 但可创造历史

群聊比单聊,为什么复杂这么多?

苹果电脑显示移动终端错误的解决方法(解决苹果电脑显示移动终端错误的技巧与经验)

2019年值得关注的五大微服务发展趋势

Python的高级特征你知多少?来对比看看

Java 8你了解多少呢?Java之被人遗忘的Java 8的八个功能

友情链接

滇ICP备2023006006号-39