Spring事务管理

spring_如何管理事务的 此文档介绍spring如何管理实务,简单易懂。 立即下载

说起事务,大家并不陌生,在学习数据库的时候已经对事务有了初步的了解,下面我们看看,spring是如何管理事务的

spring的事务管理主要就是将事务由数据访问层提升至业务层。

回忆一下什么是事务:

  • 事务,就是一组操作数据库的动作集合。
  • 事务是现代数据库理论中的核心概念之一。
  • 如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务。
  • 当所有的步骤像一个操作一样被完整地执行,我们称该事务被提交。
  • 由于其中的一部分或多步执行失败,导致没有步骤被提交,则事务必须回滚到最初的系统状态。

Spring事务的隔离级别:

五个隔离级别:

  • ISOLATION_DEFAULT
    这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.
  • 另外四个与JDBC的隔离级别相对应;
  • ISOLATION_READ_UNCOMMITTED这是事务最低的隔离级别,它充许别外一个事务可以看到这个事务未提交的数据。
    这种隔离级别会产生脏读,不可重复读和幻像读。
  • ISOLATION_READ_COMMITTED保证一个事务修改的数据提交后才能被另外一个事务读取。
    另外一个事务不能读取该事务未提交的数据。这种事务隔离级别可以避免脏读出现,但是可能会出现不可重复读和幻像读。
  • ISOLATION_REPEATABLE_READ这种事务隔离级别可以防止脏读,不可重复读。
    但是可能出现幻像读。它除了保证一个事务不能读取另一个事务未提交的数据外,还保证了避免下面的情况产生(不可重复读)。
  • ISOLATION_SERIALIZABLE这是花费最高代价但是最可靠的事务隔离级别。
    事务被处理为顺序执行。除了防止脏读,不可重复读外,还避免了幻像读。
  • mysql的事务默认隔离级别为可重复读
  • Orcale的事务默认隔离级别为读已提交

Spring事务的七种传播行为:

  • 1.PROPAGATION_REQUIRED – 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。

  • 2.PROPAGATION_SUPPORTS – 支持当前事务,如果当前没有事务,就以非事务方式执行。

  • 3.PROPAGATION_MANDATORY – 支持当前事务,如果当前没有事务,就抛出异常。

  • 4.PROPAGATION_REQUIRES_NEW – 新建事务,如果当前存在事务,把当前事务挂起。

  • 5.PROPAGATION_NOT_SUPPORTED – 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

  • 6.PROPAGATION_NEVER – 以非事务方式执行,如果当前存在事务,则抛出异常。

  • 7.PROPAGATION_NESTED – 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。

  • 常用的两个事务传播属性是1和4,即PROPAGATION_REQUIRED,PROPAGATION_REQUIRES_NEW即必须在事务下进行


Spring事务管理的API:

  • 平台事务管理接口

  • 该接口常用的实现类:
  • DataSourceTransactionManager 当使用JDBC或MyBatis(iBatis)连接DB,则使用该实现类进行事务管理。
  • HibernateTransactionManager 当使用Hibernate连接DB,则使用该实现类进行事务管理。
  • Spring的默认回滚方式:发生受查异常提交,发生运行时异常回滚。可以通过配置进行修改
  • 受查异常:编译时异常,代码运行前需要进行处理的异常。
  • 运行时异常:RuntimeException的子类

通过Spring管理事务的方式:

  • 使用Spring的事务代理工厂Bean生成代理对象管理事务

  • 使用Spring的事务管理注解管理事务
  • 1.在目标方法上添加事务注解
    2.在spring容器中注册事务注解驱动



     
  • 使用AspectJ管理事务(常用)
  • 1.导入aspectJ的jar包
    2.引入aop约束
    3.在spring容器中注册平台事务管理器
    4.注册事务相关的通知
    5.进行AOP配置

 

SAP ABAP MIGO增强实战:自定义页签与字段的完整实现指南 本文详细介绍了SAP ABAP中MIGO增强的实战指南,包括自定义页签与字段的完整实现步骤。通过BADI增强技术,开发者可以快速满足企业个性化需求,如添加供应商批次号等特殊字段。文章涵盖数据存储结构设计、BADI框架实现、核心方法编写及数据持久化方案,帮助用户高效完成MIGO屏幕增强开发。 阅读详情

相关推荐

[官方培训]22-UE资产优化 Epic 肖月 笔记

Nanite+Lumen目标:面向TA,美术,不影响视觉的前提下,优化运行和编辑效率引擎:UE5.1延迟管线平台:主流PC,Windows 10 with DX12。

Tcohneyn的博客 1575

Spring是如何管理事务的?

Spring 的事务管理机制通过编程式事务管理和声明式事务管理两种方式提供了灵活的事务控制。声明式事务管理是最常用的方式,通过注解,可以方便地控制事务的传播行为、隔离级别、超时时间和回滚规则。Spring 事务管理机制的强大和灵活性,使得开发者可以轻松地处理复杂的事务场景,确保数据的一致性和完整性。

weixin_44794897的博客 1541

基于Python的高考志愿辅助填报系统

在实际应用中,系统需要处理更复杂的数据,包括更多的高校和专业信息、更详细的录取规则、以及用户的历史选择等。系统需要提供用户友好的界面,让考生输入自己的信息和偏好,然后通过后端的模型计算出推荐的志愿列表。此外,系统还应该提供一些个性化的服务,如根据考生的输入动态调整推荐策略、保存用户的填报历史和偏好等。特征可能包括考生的分数、所在省份、文理科类别、专业偏好、高校的地理位置、排名、专业的就业前景等。3. **推荐逻辑**:根据用户的分数和专业偏好,结合历史录取数据,使用简单的算法来推荐可能录取的高校和专业。

coder_wwwdy的博客 1977

spring事务详解

Spring事务总结 参考 首先,如果整个系统要能实现事务,需要两个方面: Spring开启了事务 MySQL 数据库默认使用支持事务的innodb引擎 1.什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行。 2. 事物的特性(ACID)了解么? 原子性: 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性: 执行事务前后,数据保持一致; 隔离性: 并发访问数据库时,一个用户的事物不被其他事务所干扰也就是说多个事务并发执行时,一个事务的执行不

马丘 1685

超速U盘选购避坑指南:如何通过Rx Detect机制识别真伪USB3.0设备

本文深入解析了USB 3.0超速U盘的选购避坑要点,重点介绍了通过Rx Detect机制识别真伪设备的核心原理。文章提供了从软件检测到实际性能测试的完整方案,帮助消费者和技术人员有效辨别虚假的USB3.0设备,确保获得真正的超速传输体验。

weixin_29189373的博客 443

CentOS 7下Synopsys DC综合工具安装与配置全攻略(附常见报错解决方案)

本文详细介绍了在CentOS 7操作系统上安装与配置Synopsys Design Compiler(DC)综合工具的完整流程。内容涵盖从系统环境准备、软件安装、许可证配置到实战综合的全过程,并针对DC综合工具在安装和运行中常见的报错问题提供了具体的解决方案,帮助数字IC设计初学者快速搭建稳定的EDA学习环境。

weixin_29159441的博客 257

【Spring】— Spring的事务管理

Spring的事务管理简化了传统的事务管理流程,并且在一定程度上减少了开发者的工作量。

衍生星球的博客 3320

OWASP 2025版AI大模型攻击安全风险汇总(攻击方法种类)

提示词注入是大模型最基础、最常见的核心漏洞,攻击者通过构造直接或间接的恶意自然语言输入,篡改大模型原本的正常行为与输出结果。哪怕这类恶意内容对人类是隐藏、不可见的,只要模型能够正常解析读取,就会触发漏洞。它和大家常说的模型“越狱”相关,但并不等同:越狱是提示词注入的极端形式,会直接让模型彻底无视所有内置安全协议,完全脱离管控;而普通提示词注入,更多是针对性篡改模型行为、诱导执行特定操作。

墨痕诉清风的博客 517

Spring是如何管理事务的

声明式事务使用注解,通过 AOP 实现事务的管理,简洁易用。编程式事务通过直接操作来实现事务的开始、提交和回滚,更加灵活,但代码较为冗长。在 Spring 中,事务的管理包括传播行为、隔离级别和回滚规则等内容,可以根据需求灵活配置。

有时间就写写代码 481

vue2/3 - H5 移动端网页中调用手机摄像头扫描二维码 / 条形码功能,在h5手机网页里调起相机摄像头进行二维码或条形码扫描效果详细教程(详细示例组件源码,一键复制开箱即用!)

vue扫描二维码条形码,vue网页调用摄像头扫二维码条形码,vue移动端如何实现调用相机扫描二维码,vue移动端扫一扫功能,vue怎么做移动端h5扫一扫功能,vue识别二维码和条形码,vue实现点击按钮调用摄像头扫码,vue调用本地摄像头实现拍照功能,Vue中如何进行二维码生成与扫描,如何实现vue在手机浏览器中调用摄像头实现扫描二维码功能,VUE项目移动端H5调用摄像头扫码,vue项目中实现H5调取摄像头,网页调用摄像头实现二维码扫描功能,vue调用手机摄像头,vue在调用摄像头扫码,vue自定义打开摄像

✅ 精选推荐文章 1万+

UE实现贴地线(SurfaceLine)效果

UnrealEngine实现贴地线效果

专注GIS开发 4572

spring-事务管理

一。事务管理 事务管理是指对数据库事务的管理,而spring本身并不具有事务属性,具有事务属性的是数据库如MySQL常见的数据库引擎中支持事务的是InnoDB,如果是myisam,事务是不起作用的。二。实例 @Override @Transactional public ResultData deleteTask(Task task) { taskDao.de

sinat_34814635的博客 5548

从0开始图形学(光栅化)

从0开始图形学

A112459的专栏 2395

【Spring】Spring的事务管理

该接口是Spring提供平台事务管理器,主要用于管理事务状态事务TransactionStatus getTransaction(TransactionDefinition definition):获取事务的状态信息void commit(TransactionStatus status):用于提交事务void rollback(TransactionStatus status):用于回滚事务该接口并不了解具体实现类,常用如下。

m0_62645012的博客 2068

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Spring事务管理总结

Spring事务管理机制概述 Spring事务管理模块主要包括3个接口 PlatformTransactionManager:事务管理器,主要用于平台相关的事务管理。 TransactionDefinition:事务定义信息(隔离级别、传播、超时、只读)通过配置如何进行事务管理。 TransactionStatus:事务具体运行状态——事务管理过程中,每个时间点事务的状态信息。 1、Platf...

qq_42961888的博客 695

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Spring:Spring事务管理知识讲解

Spring为了管理事务,提供了一个平台事务管理器commit是用来提交事务,rollback是用来回滚事务。PlatformTransactionManager只是一个接口,Spring还为其提供了一个具体的实现:从名称上可以看出,我们只需要给它一个DataSource对象,它就可以帮你去在业务层管理事务。其内部采用的是JDBC的事务。所以说如果你持久层采用的是JDBC相关的技术,就可以采用这个事务管理器来管理你的事务。

qq_41187116的博客 1407

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Spring事务管理详解

Spring事务管理详解

一个普本码农奋斗史 8万+

Spring 事务管理机制概述

用户的每次请求都对应一个业务逻辑方法,而一个业务逻辑方法往往包括一系列数据库原子访问操作,并且这些操作应绑定成一个事务来执行。使用传统事务编程策略时,程序代码必然和具体的事务操作代码耦合,而Spring事务管理策略可以避免这种尴尬。Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理,本文在对Spring事务管理API分析的基础上,详细地阐述了Spring编程式事务管理和声明式事务管理的原理、本质和使用

Rico's Blogs 3万+

Spring中进行事务管理的两种方式

1、Spring中事务管理的API PlatformTransactionManager TransactionDefinition TransactionStatus 2、编程式事务管理 3、声明式事务管理 基于Spring-AOP的方式 基于AspectJ的标签 基于注解的方式

theVicTory的博客 4122

【Spring】Spring事务管理

1.1简介Spring框架内部使用事务管理器的接口,来完成commit和rollback针对不同的框架,提供不同的实现类1.2ACID属性。

wosixiaokeai的博客 1145

说说Spring事务管理

实现了业务逻辑与事务控制的解耦。Spring 事务管理是 Spring 框架的核心功能之一,旨在简化数据库操作的原子性、一致性、隔离性和持久性(ACID)控制。原理:基于 AOP 动态代理,在运行时拦截@Transactional注解的方法,自动管理事务的开启、提交和回滚。嵌套事务回滚:REQUIRES_NEW的内层事务回滚不影响外层,而NESTED的内层回滚可被外层捕获。避免大事务:减少事务内耗时操作(如 RPC 调用),拆分为小事务。适用场景:需精细控制事务边界(如根据条件提交/回滚)。

tschen的博客 1271

Spring的事务管理

Spring的事务管理 事务 事务:是逻辑上一组操作, 要么全都成功, 要么全都失败. 事务特性: ACID: 原子性:事务不可分割 一致性:事务执行的前后, 数据完整性保持一致. 隔离性:一个事务执行的时候, 不应该受到其他事务的打扰 持久性:一旦结束, 数据就永久的保存到数据库. 如果不考虑隔离性: 脏读:一个事务读到另一个事务未提交数据 不可重复读:一个事务读到另一个事务已经提交数据( update) 导致一个事务多次查询结果不一致 虚读:一个事务读到另一个事务已经提交数据( ins

qq_41796988的博客 2013

Spring的事务管理机制

Spring事务管理机制概述 Spring事务管理模块主要包括3个接口 PlatformTransactionManager:事务管理器,主要用于平台相关的事务管理。 TransactionDefinition:事务定义信息(隔离级别、传播、超时、只读)通过配置如何进行事务管理。 TransactionStatus:事务具体运行状态——事务管理过程中,每个时间点事务的状态信息。 1、Platf...

qq_42961888的博客 2332

Spring 事务管理

(个人学习记录)本章主要记录spring事务的两种实现方式,及编程式事务和声明式事务(xml和注解方式),在实际过程中,我们绝大多数时候都是使用的声明式事务来实现我们的事务管理。对于事务的隔离级别和传播行为我们需要重点了解。事务是一个最小的不可再分的工作单元。 一个事务对应一套完整的业务操作。事务管理是指这些操作要么全部成功执行,要么全部回滚,从而保证数据的一致性和完整性。事务是一组原子性的操作,要么全部成功提交,要么全部失败回滚。它具有 ACID 四个特性:原子性(Atomicity):事务中的操作要么全

LYH2771994122的博客 921
上一篇: Spring与Mybatis
下一篇: Linux下安装tomcat
Lemon_Trees
博客等级 码龄9年 1粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值