Spring事务隔离级别与传播行为

GD32F103入门实践(一)配置环境,搭建工程模板,烧写程序 写在前面 本系列博客是我初学GD32F103的操作实录,我个人是个小白,在学习过程中真的也遇到了不少坑,因此我希望能记录下来,帮助到同样踩坑的你。 我的芯片是GD32F103ZE,软件是Keil,烧写用的是JLink。 材料准备 首先我在兆易创新官网(兆易创新),下载相关的文件。点击资料下载,在搜索框里输入“GD32F10”可以得到相关的资料,其他芯片类似。比较重要的是GD32F10x AddOn和GD32F10x Firmware Library(固件库),这两个必须下载。 下载Keil MDK5,这 阅读详情

org.springframework.transaction

public interface TransactionDefinition
定义符合 Spring 的事务属性的接口。基于类似于 EJB CMT 属性的传播行为定义。‎
‎注意,除非启动实际的新事务,否则不会应用隔离级别和超时设置。‎ ‎仅‎ PROPAGATION_REQUIRED, PROPAGATION_REQUIRES_NEW and PROPAGATION_NESTED ‎可能导致这种情况,在其他情况下指定这些设置通常没有意义。此外,并非所有事务管理器都支持这些高级功能,因此在给定非默认值时可能会引发相应的异常。‎

read-only flag ‎适用于任何事务上下文,无论是由实际资源事务支持还是在资源级别以非事务方式运行。在后一种情况下,该标志将仅适用于应用程序中的托管资源,‎ ‎例如‎ Hibernate Session.

隔离级别

隔离级别描述‎
ISOLATION_DEFAULT使用基础数据存储的默认隔离级别。
ISOLATION_READ_COMMITTED指示防止脏读;可能发生非可重复读取和幻像读取。
ISOLATION_READ_UNCOMMITTED‎指示可能发生脏读、非可重复读取和幻像读取。‎
ISOLATION_REPEATABLE_READ‎指示防止脏读和非可重复读;可能会发生幻像读取。‎
ISOLATION_SERIALIZABLE‎指示防止脏读、非可重复读取和幻像读取。‎

ISOLATION_READ_COMMITTED

表示防止脏读;可能发生非可重复读取和幻像读取。‎
‎此级别仅禁止事务读取包含未提交更改的行。‎

ISOLATION_READ_UNCOMMITTED

表示可能发生脏读、非可重复读取和幻像读取。‎
‎此级别允许一个事务更改的行在提交该行中的任何更改之前由另一个事务读取(“脏读取”)。如果回滚任何更改,则第二个事务将检索到无效行。

ISOLATION_REPEATABLE_READ

‎表示防止脏读和非可重复读;可能会发生幻像读取。‎
‎此级别禁止事务读取包含未提交更改的行,并且还禁止以下情况:一个事务读取行,第二个事务更改行,第一个事务重新读取行,第二次获取不同的值(“不可重复读取”)。‎

ISOLATION_SERIALIZABLE

‎表示防止脏读、非可重复读取和幻像读取。‎
‎此级别包括‎‎ISOLATION_REPEATABLE_READ‎‎中的禁止,并进一步禁止以下情况:一个事务读取满足某个条件的所有行,第二个事务插入满足该条件的行,第一个事务针对同一条件重新读取,在第二次读取中检索其他“幻像”行

传播行为

传播行为描述‎
PROPAGATION_REQUIRED支持当前事务;如果不存在,请创建一个新。‎
PROPAGATION_REQUIRES_NEW‎创建新事务,暂停当前事务(如果存在)。‎
PROPAGATION_NESTED如果当前事务存在,则在嵌套事务中执行,否则行为‎‎类似于PROPAGATION_REQUIRED‎‎。‎
PROPAGATION_NEVER不支持当前事务;如果当前事务存在,则引发异常。‎
PROPAGATION_SUPPORTS‎支持当前事务;如果不存在,则以非事务方式执行。‎
PROPAGATION_NOT_SUPPORTED不支持当前事务;而是始终以非事务性方式执行。‎
PROPAGATION_MANDATORY支持当前事务;如果当前事务不存在,则引发异常。‎

PROPAGATION_REQUIRED

‎支持当前事务;如果不存在,请创建一个新。类似于同名的 EJB 事务属性。‎
‎这通常是事务定义的默认设置,通常定义事务同步作用域。‎

PROPAGATION_REQUIRES_NEW

‎创建新事务,暂停当前事务(如果存在)。类似于同名的 EJB 事务属性。‎
‎注意:‎‎实际的事务暂停不会在所有事务管理器上开箱即用。这尤其适用于‎‎JtaTransactionManager‎‎,它要求将其提供给它(在标准Java EE中是特定于服务器的)。‎javax.transaction.TransactionManager

‎作用域始终定义自己的事务同步。现有同步将被挂起并相应地恢复。

PROPAGATION_NESTED

‎如果当前事务存在,则在嵌套事务中执行,否则行为‎‎类似于PROPAGATION_REQUIRED‎‎。EJB 中没有类似的功能。‎
‎注意:‎‎实际创建嵌套事务仅适用于特定的事务管理器。开箱即用,这仅适用于在处理 JDBC 3.0 驱动程序时的 JDBC ‎‎DataSourceTransactionManager‎‎。某些 JTA 提供程序可能也支持嵌套事务。

PROPAGATION_NEVER

‎不支持当前事务;如果当前事务存在,则引发异常。类似于同名的 EJB 事务属性。‎
‎请注意,事务同步在某个范围内‎‎不可用‎‎。

PROPAGATION_SUPPORTS

‎支持当前事务;如果不存在,则以非事务方式执行。类似于同名的 EJB 事务属性。‎
‎注意:对于具有事务同步功能的事务管理器‎, PROPAGATION_SUPPORTS ‎与完全没有事务略有不同,因为它定义了同步可能适用的事务范围。因此,相同的资源‎ (a JDBC Connection, a Hibernate Session, etc) ‎将在整个指定范围内共享。注意,确切的行为取决于事务管理器的实际同步配置!‎

‎一般而言,使用‎ PROPAGATION_SUPPORTS ‎用心!特别是,不要依赖‎ PROPAGATION_REQUIRED or PROPAGATION_REQUIRES_NEW ‎在‎ PROPAGATION_SUPPORTS‎作用域(这可能会导致运行时的同步冲突)。如果这种嵌套是不可避免的,请确保适当地配置事务管理器(通常切换到“实际事务上的同步”)。‎

PROPAGATION_NOT_SUPPORTED

‎不支持当前事务;而是始终以非事务性方式执行。类似于同名的 EJB 事务属性。‎
‎注意:‎‎实际的事务暂停不会在所有事务管理器上开箱即用。这尤其适用于‎‎JtaTransactionManager‎‎,它要求将其提供给它(在标准Java EE中是特定于服务器的)。‎javax.transaction.TransactionManager

‎请注意,事务同步在某个范围内‎‎不可用‎‎。现有同步将被挂起并相应地恢复。

PROPAGATION_MANDATORY

‎支持当前事务;如果当前事务不存在,则引发异常。类似于同名的 EJB 事务属性。‎
‎请注意,作用域内的事务同步将始终由周围的事务驱动

‎

智驾芯片&软件分层&测试 智能驾驶相关的芯片,软件分层,测试相关内容 阅读详情

相关推荐

字节开源 DeerFlow 2.0:从 Deep Research 到 Super Agent Harness 的进化之路

GitHub Trending 冠军项目,字节跳动完全开源的超级智能体框架。支持子代理、沙箱执行、长期记忆、技能扩展,可完成从几分钟到几小时的复杂任务。本文深度解析架构设计、安装实战、技能系统,并附上独家配置指南。

qq_38610923的博客 1713

数据库事务概述

事务管理欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编

zzxinwow123的博客 2511

构造地貌研究入门:手把手教你用ArcGIS插件CalHypso分析流域地貌形态

本文详细介绍了如何使用ArcGIS插件CalHypso进行流域地貌形态分析,包括工具安装、数据预处理、HI曲线生成及结果解读等关键步骤。通过实战操作,帮助读者掌握面积高程积分(HI)曲线的应用技巧,为构造地貌研究提供量化工具。

weixin_33704234的博客 105

spring的事务中,Isolation4种事务隔离级别的理解

spring事务中的4种隔离事务的理解

ynyeel的博客 2632

openEuler系统下安装Google Chrome浏览器全攻略(附依赖问题解决方案)

本文详细介绍了在openEuler系统上安装Google Chrome浏览器的完整指南,包括环境准备、多种安装方式、依赖问题解决方案及性能优化技巧。针对openEuler特有的软件生态和依赖管理机制,提供了实用的命令和配置方法,帮助用户克服安装过程中的常见障碍,实现流畅的Chrome使用体验。

hadoop5ranger的博客 1152

springcloud+nacos+gateway+oauth2小聚会

在微服务工程中,Nacos作为目前主流的注册中心和配置中心,Spring Cloud Gateway作为目前主流的网关,下面引入spring security+oauth2+jwt作为认证和授权中心,进行简单的聊聊。

ldcaws的专栏 2646

面试问烂的 MySQL 四种隔离级别,看完吊打面试官!

点击上方“小哈学Java”,选择“星标”回复“666”,领取100G独家整理的学习资料哟~来源:http://1t.click/6pc什么是事务事务是应用程序中一系列严密...

犬小哈 329

Windows10检查Cuda和cuDNN是否安装成功?

简介:根据上篇博客已经完成了CUDA和cuDNN的安装步骤,完成对其的安装。下面将来检查它们是否安装成功。 1 .首先win+R进入CMD,在命令行输入nvcc -V,如下图所示,则表示cuda已经安装成功。 2 .进入到cuda的安装路径,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite,找到如下两个.exe文件: 首先执行:deviceQuery.exe,查看是否出现如下界面: 然后执行bandwid

jhsignal的博客 14万+

Spring事务配置隔离级别Isolation.READ_COMMITTED引发的一系列问题

这两天改了下spring事务隔离级别,使用Isolation.READ_COMMITTED,导致了放到生产环境马上出现错误。这是在测试环境没有的,找log发现了:Caused by: java.sql.SQLException: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = ST...

davenTsang的专栏 2万+

ISO15118-20协议测试实战:用Efficient XML库验证26条命令编解码(附完整代码)

本文分享了ISO15118-20协议测试实战经验,重点探讨了使用Efficient XML库对26条命令进行EXI编解码验证的过程。通过搭建测试环境、编写自动化程序并与官方工具链进行交叉比对,文章深入分析了4条命令编码结果不一致的原因,并提供了完整的排查思路与C代码示例,旨在帮助开发者确保电动汽车充电通信的协议一致性。

weixin_29284657的博客 109

深度学习-155-RAG技术之嵌入模型Embedding怎么选

Embedding技术在大型语言模型中发挥着至关重要的作用。它将文本转化为向量,使模型能够理解和处理复杂的语言信息。通过选择合适的Embedding方法和优化文本匹配策略,我们可以在搜索引擎、问答系统、推荐系统等领域实现高效且精准的文本匹配。

qq_20466211的博客 406

@Transactional的四种隔离级别测试

不知道大家有没有想过数据库的事务隔离级别和@Transaction设置的隔离级别到底是什么关系? 数据库设置的高隔离级别,@Transaction设置低隔离级别,那么事务的隔离级别到底以谁的为主? 下面就让我们一起去用代码研究一下 首先我们mysql数据库的默认隔离级别是read-commit读已经提交; 那么我们先测试@Transactional(isolation = Isolation.READ_UNCOMMITTED) 读未提交; 先上测试代码 @Service public clas

weixin_44771989的博客 6339

把时间当成数据:SAP ABAP 里的 DATS/TIMS 与 DATN/TIMN,怎么选才不踩坑

SAP项目中日期时间字段的陷阱与优化 日期时间字段(DATS/TIMS)在SAP项目中看似简单却常引发事故,主要问题包括: 非法日期(如20201331)入库后,在月结、对账时爆发异常 空值被处理为00000000导致排序错误 ABAP提供两种处理方案: 经典类型DATS/TIMS:存储为字符格式,校验宽松易存脏数据 HANA原生类型DATN/TIMN:数据库级校验,写入即拦截非法值 优化建议: 在接口层和入库前进行严格校验 新项目优先使用DATN/TIMN类型 对遗留数据使用DATS_IS_VALID等函

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 184

spring 事务传播行为和事务隔离级别

1、Spring声明式事务 声明式事务(declarative transaction management)是Spring提供的对程序事务管理的方式之一。 Spring的声明式事务顾名思义就是采用声明的方式来处理事务。这里所说的声明,就是指在配置文件中申明。用在Spring配置文件中声明式的处理事务来代替代码式的处理事务。这样的好处是,事务管理不侵入开发的组件,具体来说,业务逻辑

小鱼的专栏 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Spring 事务传播行为与隔离级别深度解析

Spring 事务传播行为与隔离级别深度解析

专注分享原创技术干货。大厂资深架构师,多年技术架构与技术管理经验,多年面试官经验。一对一技术指导培训,带你从小白到入门到架构设计到技术管理。关注我,免费领取学习资料。一对一免费面试指导,快速拿offer。 1234

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Spring 事务有几个隔离级别? Spring 有哪几种事务传播行为? Spring 事务传播行为有什么用?

【代码】Spring 事务有几个隔离级别?Spring 有哪几种事务传播行为?Spring 事务传播行为有什么用?

weixin_43521001的博客 874

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

数据库事务隔离级别与Spring传播行为深度解析

摘要:本文深入剖析数据库事务隔离级别与Spring传播行为的技术原理与实战应用。通过电商支付、批量处理等真实案例,揭示事务管理的核心难点:脏读、不可重复读、幻读等并发问题,以及死锁、性能下降等常见陷阱。文章对比了四种隔离级别(READ UNCOMMITTED到SERIALIZABLE)的实现机制与性能差异,详解Spring七种传播行为的工作流程,提供源码级分析。针对企业级场景,给出支付系统、批量处理等典型场景的优化方案,包括事务拆分、异步处理等技巧,并配套监控配置与故障排查方法。最后总结出"事务军

七夜zippoe的博客 2638

事务隔离级别和传播行为_Spring事务的传播行为和隔离级别

1.事务的传播行为 事务的使用过程中,用的最多的传播行为是require,在大部分的mis系统里,可以对整个业务层切一个require的事务就可以满足需要。 但spring提供的不仅如此,对于复杂的业务,Spring也提供了相应的事务传播行为来满足业务需要。 Spring中的传1.事务的传播行为事务的使用过程中,用的最多的传播行为是require,在大部分的mis系统里,可以对整个业务层切一个re...

weixin_39604685的博客 4307

spring事务隔离级别、传播行为以及spring+mybatis+atomikos实现分布式事务管理

1.事务的定义:事务是指多个操作单元组成的合集,多个单元操作是整体不可分割的,要么都操作不成功,要么都成功。其必须遵循四个原则(ACID)。 2.事务隔离级别:spring有五大隔离级别,其在TransactionDefinition中定义 3.事务传播行为:七大传播行为

半山闲人的专栏 2万+

Spring 事务隔离级别和传播行为

一、spring支持的事务声明方式 编程式事务 当系统需要明确的,细粒度的控制各个事务的边界,应选择编程式事务。 声明式事务 当系统对于事务的控制粒度较粗时,应该选择声明式事务 二、spring支持7种事务传播行为 传播行为 含义 propagation_required(xml文件中为required) 表示当前方法必须在一个具有事务的上下文中运行,如有客户端有事务在进行,那么被调用端将在该事务中运行,否则的话重新开启一个事务。(如果被调用端发生异常,那么调用端和被调用端事

一点莹的博客 4371

Spring事务的7个传播行为,4个隔离级别

Spring事务的传播行为和隔离级别[transaction behavior and isolated level] Spring中事务的定义:  一、Propagation  key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。有以下选项可供使用: PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这

辉悦天成的专栏 8557

Spring事务的隔离级别与传播行为

发生幻读的原因也是另外一个事务新增或者删除或者修改了第一个事务结果集里面的数据,同一个记录的数据内容被修改了,所有数据行的记录就变多或者变少了。比如,某个事务尝试插入记录 A,此时该事务还未提交,然后另一个事务尝试读取到了记录 A。READ:可重复读,保证多次读取同一个数据时,其值都和事务开始时候的内容是一致,禁止读取到别的事务未提交的数据(会造成幻读),方法被调用时自动开启事务,在事务范围内使用则使用同一个事务,否则开启新事务。自身不会开启事务,在事务范围内则使用相同事务,否则不使用事务。

qq_43390704的博客 1871

Spring五个事务隔离级别和七个事务传播行为

其实之前写过一篇,但是写的太简单了,所以这次重新补充一些内容。 1.Spring事务隔离级别 摘要: Spring中5个事务隔离级别的区分 脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。 不可重复读:是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也...

iCoding91 1198

Spring——什么是事务?传播行为?事务隔离级别有哪些?

Spring——什么是事务?传播行为?事务隔离级别有哪些?

一起加油吧~ 3127

Spring 中的 事务 隔离级别以及传播行为

隔离级别:控制事务在并发环境下的数据可见性,解决脏读、不可重复读和幻读问题。传播行为:控制事务方法之间的调用行为,决定事务的创建、加入或挂起。通过合理配置隔离级别和传播行为,可以确保应用程序在并发环境下保持数据的一致性和完整性。

qq_43364241的博客 809

spring 的事务隔离级别和事务传播行为

spring 的事务隔离级别和事务传播行为 Spring的事务控制可以分为编程式事务控制和声明式事务控制。 编程式事务 将业务代码和事务代码放在一起书写,它的耦合性太高,开发中不使用 声明式事务 其实就是将事务代码(spring内置)和业务代码隔离开发, 然后通过一段配置让他们组装运行, 最后 达到事务控制的目的. 声明式事务就是通过AOP原理实现的. TransactionDefinition spring事务定义参数的接口,比如定义:事务隔离级别、事务传播行为等等 ① 事务隔离级别 isolation:

成为自己的太阳的博客 607
上一篇: Spring Cache 缓存
下一篇: JAVA多线程编程之异步
l_learning
博客等级 码龄8年 15粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值