首页 > 其他分享 >Spring事务 - 事务传播机制

Spring事务 - 事务传播机制

时间:2024-10-11 11:44:10浏览次数:8  
标签:事务 Spring NEVER 传播 当前 如果 方法

Spring事务 - 事务传播机制 

概要

事务的传播机制,顾名思义就是多个事务方法之间调用,事务如何在这些方法之间传播。

举个例子,方法 A 是一个事务的方法,方法 A 执行的时候调用了方法 B,此时方法 B 有无事务以及是否需要事务都会对方法 A 和方法 B 产生不同的影响,而这个影响是由两个方法的事务传播机制决定的。

1. REQUIRED 如果当前方法没有事务,新建一个事务,如果已经存在一个事务中,则加入到这个事务中。


2. SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行。如果存在事务,就加入到当前事务。


3. MANDATORY 使用当前的事务,如果当前没有事务,就抛出异常。

这就说明如果想调用 MANDATORY 传播属性的方法,一定要有事务,不然就会报错。


二、不支持当前事务

1. REQUIRES_NEW 创建一个新的事务。如果存在事务,就将事务挂起。

无论是否有事务,都会创建一个新的事务。


2. NOT_SUPPORTED 无论是否存在当前事务,都是以非事务的方式运行。

3. NEVER 不使用事务,如果存在事务,就抛出异常。

NEVER 的方法不使用事务,调用 NEVER 方法如果有事务,就抛出异常。


三、嵌套事务 NESTED

如果当前事务存在,就运行一个嵌套事务。如果不存在事务,就和 REQUIRED 一样新建一个事务。

标签:事务,Spring,NEVER,传播,当前,如果,方法
From: https://www.cnblogs.com/hld123/p/18458085

相关文章

  • Java项目: 基于SpringBoot+mybatis+maven+vue健身房管理系统(含源码+数据库+毕业论文)
    一、项目简介本项目是一套基于SpringBoot+mybatis+maven+vue健身房管理系统包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。项目都经过严格调试,eclipse或者idea确保可以运行!该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用......
  • Spring Boot课程问答:一键解决疑惑
    1系统概述1.1研究背景如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传播的主要途径,社会上各种各样的信息都想尽办法通过互联网进行......
  • java基于springboot大学生个人财务理财管理系统vue
    目录功能和技术介绍系统实现截图为什么选择最新的Vue与SpringBoot技术开发核心技术介绍:代码执行流程核心代码部分展示可行性分析其他springboot项目推荐详细视频演示源码获取功能和技术介绍本大学生个人财务管理系统设计目标是实现收入和支出的信息化管理,提高管理效......
  • Spring Boot 集成 RabbitMQ 消息事务(消费者)
    1.SpringBoot集成RabbitMQ消息事务(消费者)1.1.版本说明1.2.概览1.2.1.最大努力单阶段提交模式1.2.2.成功的业务流程1.2.3.失败的业务流程1.3.新建数据库表1.4.Spring配置1.5.定义常量1.6.配置交换机和队列1.7.定义RabbitMQ消息事务管理器1.8.配......
  • 深入探索Spring AI:源码分析流式回答
    在上一章节中,我们深入分析了SpringAI的阻塞式请求与响应机制,并探讨了如何增强其记忆能力。今天,我们将重点讲解流式响应的概念与实现。毕竟,AI的流式回答功能与其交互体验密切相关,是提升用户满意度的重要组成部分。基本用法基本用法非常简单,只需增加一个stream方法即可实现所需......
  • SpringBoot增删该查
    SpringBoot+Mybatis增删该查()1、xml基础配置<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation......
  • 基于SpringBoot + Vue的毕业设计选题系统的设计与实现 (角色:学生、教师、管理员)
    文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言......
  • 基于JAVA+SpringBoot+Vue+协同过滤算法+爬虫的前后端分离的租房系统
    ✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌......
  • 基于SpringBoot+Vue+uniapp的在线远程考试系统的详细设计和实现(源码+lw+部署文档+讲
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的毕业就业信息管理系统的详细设计和实现(源码+lw+部署文档
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......