116、你是如何理解Spring事务的传播机制的?底层是如何实现的?

news2024/11/14 12:13:10

你是如何理解Spring事务的传播机制的?底层是如何实现的?

一个线程在运行过程中,可能会连续调用好几个方法,在调用某一个方法时,可能就开启了一个Spring事务,那么在调用接下来的方法时,到底是共用同一个事务呢?还是新开一个事务呢?这就是传播机制,程序员可以根据不同的业务场景进行配置,比如:

  1. REQUIRED(Spring默认的事务传播类型):如果当前没有事务,则自己新建一个事务,如果当前存在事务,则加入这个事务
  2. SUPPORTS:当前存在事务,则加入当前事务,如果当前没有事务,就以非事务方法执行
  3. MANDATORY:当前存在事务,则加入当前事务,如果当前事务不存在,则抛出异常。
  4. REQUIRES_NEW:创建一个新事务,如果存在当前事务,则挂起该事务。
  5. NOT_SUPPORTED:以非事务方式执行,如果当前存在事务,则挂起当前事务
  6. NEVER:不使用事务,如果当前事务存在,则抛出异常
  7. NESTED:如果当前事务存在,则在嵌套事务中执行,否则和REQUIRED的操作一样(开启一个事务)

在这里插入图片描述

在Spring中,一个Spring事务就是对应一个数据库连接,新开一个Spring事务其实就是新开一个数据库连接,比如执行某个方法时需要开启一个Spring事务,那么就会创建一个数据库连接,然后开始执行方法,如果方法中调用了其他方法,此时就会看这个其他方法怎么配置的:

  1. 比如是REQUIRES_NEW,那么就会新开一个数据库连接,这个其中方法中的sql就会在这个新开的数据库连接中执行
  2. 比如是REQUIRED,那么就不会新开,而是基于之前的数据库连接来执行方法中的sql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/816037.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】二叉搜索树的原理及实现

简介 二叉搜索树(Binary Search Tree,BST)是一种常用的数据结构,本文将介绍二叉搜索树的原理与特性,并给出C代码实现,最后对其性能进行详细的分析。 文章目录 简介 一、二叉搜索树的概念 二、二叉搜索树的操作及实现 2、1 二叉搜…

01|Oracle学习(监听程序、管理工具、PL/SQL Developer、本地网络服务介绍)

基础概念 监听程序:运行在Oracle服务器端用于侦听客户端请求的程序。 相当于保安,你来找人,他会拦你,问你找谁。他去帮你叫人过来。 配置监听程序应用场景 Oracle数据库软件安装之后没有监听程序(服务)…

pdf阅读器哪个好用?这个阅读器别错过

pdf阅读器哪个好用?PDF是一种流行的文件格式,可以保留文档的原始格式、布局和字体。与其他文档格式相比,PDF在不同设备和操作系统上的显示效果更为一致,确保文档内容的准确性和可读性。在阅读一些PDF文件的时候,使用一…

文本怎么用手机生成二维码?二维码在线文本码制作技巧

现在二维码可以展示的内容越来越丰富,比如文本就是很常见的一种形式。编辑好文本内容之后,将文字内容添加到二维码中,其他人扫码就可以获取到文字内容,那么文本二维码该如何制作呢?想要制作二维码,那么可以…

全网最牛,postman接口测试-高级应用实战(总结)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 流程控制 流程控…

【Excel自动化办公】openpyxl如何实现Excel超链接批量化设置?

Python是一种高效的编程语言,它可以方便地处理各种文件格式,包括Excel。 在Excel中,超链接是一种非常有用的功能,它可以让用户快速跳转到其他工作表或其他文件中的特定单元格。 在本文中,我们将介绍如何使用Python来…

openpnp - Enable Visual Homing

文章目录 openpnp - Enable Visual Homing概述笔记视觉归零设置END openpnp - Enable Visual Homing 概述 设备已经完全通过openpnp的校验了. 当时发现一个问题, 视觉归零如果使能, 就会使主校准点和次校准点的位置发生变化, 导致顶部相机十字不能准确的落在主/次校准点上. 当…

【计算机网络】HTTP 协议详解

文章目录 1. HTTP 协议介绍2. HTTP 协议的工作过程3. Fiddler 抓包工具介绍3.1 抓包工具的使用3.2 抓包结果3.3 抓包工具原理 4. HTTP 协议格式总览5. HTTP 请求(Request)5.1 认识 URLURL 基本介绍URL 基本格式URL 参数介绍URLencode 介绍 5.2 认识“方法…

同一数据集(相同路径)的 FID 为负数

公众号:EDPJ 先说结论:这是算法中对复数取实部的结果,对 FID 的影响不大。 FID是从原始图像的计算机视觉特征的统计方面,来衡量两组图像的相似度,是计算真实图像和生成图像的特征向量之间距离的一种度量。 这种视觉特…

CASS数据带属性转GIS的shp数据教程

一、数据:DWG文件中含有JZD(宗地层),JZP(界址点层),其中JZP中含有界址点号,实现JZD层转成ZD的shp数据;JZP转成JZD点的shp数据,并带出界址点号。 二、实现原理…

flutter 导出iOS问题2

问题1:The Swift pod FirebaseCoreInternal depends upon GoogleUtilities, which does not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries) 参考 正如上图报错第三方…

基于P2P技术的远距离传输大型文件解决方案

随着互联网的普及和数据存储的快速发展,远距离传输大型文件成为一种常态。传统的文件传输方式,如邮件、FTP等,通常只适用于小型文件的传输,对于大型文件的传输则效率低下并且很容易遇到传输失败的问题。面对这个问题,P…

一起学算法(位运算篇)

1.位运算 1.二进制数值表示 在计算机中,我们可以用单纯的0和1来表示数字,一般不产生歧义,我们会在数字的右下角写上它的进制,例如:1010(10)其表示的是1010,1010(2&#…

职工管理系统C++

1、管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责…

一文了解JavaScript 与 TypeScript的区别

TypeScript 和 JavaScript 是两种互补的技术,共同推动前端和后端开发。在本文中,我们将带您快速了解JavaScript 与 TypeScript的区别。 一、TypeScript 和 JavaScript 之间的区别 JavaScript 和 TypeScript 看起来非常相似,但有一个重要的区…

CASAIM自动化平面度检测设备3D扫描零部件形位公差尺寸测量

平面度是表面形状的度量,指示沿该表面的所有点是否在同一平面中,当两个表面需要连接在一起形成紧密连接时,平面度检测至关重要。 CASAIM自动化平面度检测设备通过搭载领先的激光三维测头和智能检测软件自动获取零部件高质量测量数据&#xf…

Vue 入门(一)

一、注意 Vue 不支持 IE8 及以下的版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性,但它支持所有兼容 ECMAScript 5 的浏览器。 二、创建 Hello Vue Vue.js 的核心是实现了 MVVM 模式,它扮演的角色就是 ViewModel 层,那么…

STM32使用HAL库中外设初始化MSP回调机制及中断回调机制详解

STM32使用HAL库之Msp回调函数 1.问题提出 在STM32的HAL库使用中,会发现库函数大都被设计成了一对: HAL_PPP/PPPP_Init HAL_PPP/PPPP_MspInit 而且HAL_PPP/PPPP_MspInit函数的defination前面还会有__weak关键字 上面的PPP/PPPP代表常见外设的名称为…

Vue配置代理(解决跨域请求)

app.vue <template><div><button click"getStudents">获取学生信息</button><button click"getCars">获取汽车信息</button></div></template><script> import axios from axios export default {…

2.4g遥控卧室床头氛围灯开发方案

台灯作为我们日常生活的照明工具&#xff0c;不但给我们的生活提供了很大的便利&#xff0c;而且也丰富了我们的世界。随着电子产品的快速发展&#xff0c;家用电器逐渐趋向智能化&#xff0c;台灯也更加智能。智能台灯以2.4g合封芯片为主控芯片&#xff0c;实现遥控器控制台灯…