Spring支持哪几种事务管理类型,Spring 的事务实现方式和实现原理是?

1.Spring事务简介

事务作用:在数据层保障一系列的数据库操作同成功同失败

Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败

为何需要在业务层处理事务?:有些操作在数据层无法保证同成功同失败,所以需要把事务放在业务层,比如:

  • 转账业务会有两次数据层的调用,一次是加钱一次是减钱
  • 把事务放在数据层,加钱和减钱就有两个事务
  • 没办法保证加钱和减钱同时成功或者同时失败
  • 这个时候就需要将事务放在业务层进行处理

Spring为了管理事务,提供了一个平台事务管理器PlatformTransactionManager

2.Spring ⽀持的事务管理类型

1.编程式事务管理使用编程的方式来管理事务,包括事务的开始、提交或回滚等操作,可以精细地控制事务的边界。

2.声明式事务管理:使用注解或 XML 配置来声明事务的属性,例如事务的隔离级别、传播行为、超时时间等, Spring 会⾃动为这些⽅法添加事务管理的⽀持,无需手动编写事务管理代码

3.注解式事务管理:通过在方法上添加@Transactional注解,开发人员可以非常方便地声明事务属性,例如 隔离级别、传播⾏为、超时时间等

3.Spring事务的实现原理

  • Spring对事务的管理底层是基于AOP实现的,采用AOP的方式进行了封装,核心接口是PlatformTransactionMabager:
  • 当在某个类或者方法上使用@Transactional注解后,Spring会基于该类生成一个代理对象,并将这个代理对象作为bean。当方法调用前会开启一个新事务,如果方法执行成功Spring会提交事务,否则回滚操作。

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

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

相关文章

Python简单网抑云数据采集 JS逆向

嗨喽,大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.10 Pycharm 模块使用: requests -> pip install requests execjs -> pip install execjs 爬虫实现基本思路流程: 一. 数据来源分析: 明确需求: 明确采集的网站以及数据内容 网址: https://mu…

【Spark精讲】Spark任务运行流程

Spark任务执行流程 部署模式是根据Drvier和Executor的运行位置的不同划分的。client模式提交任务与Driver进程在同一个节点上,而cluster模式提交任务与Driver进程不在同一个节点。 Client模式 Clinet模式是在spark-submit提交任务的节点上运行Driver进程。 执行流…

《码农的噩梦与修电脑的奇幻之旅》

故事从一个充满梦想的码农学习计算机编程开始。他对编写程序充满了热情,认为自己就像是一位能够编织魔法的巫师,能够创造出炫酷的虚拟世界。 然而,这个充满幻想的故事在码农入门的第一天就遭遇了突如其来的挫折。电脑故障了!所有…

数据结构 | 二叉树交换左右子树

二叉树交换左右子树的三种实现方式_交换二叉树的左右子树-CSDN博客

全网最新最全的基于Tensorflow和PyTorch深度学习环境安装教程: Tensorflow 2.10.1 加 CUDA 11.8 加 CUDNN8.8.1加PyTorch2.0.0

本文编写日期是:2023年4月. Python开发环境是Anaconda 3.10版本,具体Anaconda的安装这里就不赘述了,基础来的。建议先完整看完本文再试,特别是最后安装过程经验分享,可以抑制安装过程中一些奇怪的念头,减少…

mongodb之mongoTemplate基本操作

mongoTemplate基本操作 前提&#xff1a;已安装好mongodb服务 架构&#xff1a;springbootmongodb 1.引入依赖&#xff08;二选一&#xff09; // maven添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot…

气动工具市场分析:预计2029年将达到725亿元

从广义上讲&#xff0c;气动工具主要是利用压缩空气带动气动马达而对外输出动能工作的一种工具&#xff0c;根据其基本工作方式可分为&#xff1a;1)旋转式(偏心可动叶片式)&#xff1b;2)往复式(容积活塞式)一般气动工具主要由动力输出部分、作业形式转化部分、进排气路部分、…

排序与算法--冒泡排序

1.原理 比较两个相邻的元素&#xff0c;将较大的值交换到右边 2.举例&#xff1a;2 8 7 5 9 4 3 第一趟&#xff1a; 第一次&#xff1a;比较第一个和第二个&#xff1a;2 8 &#xff0c;不需要交换 第二次&#xff1a;比较 8 7&#xff0c;将8和7进行交换&#xff1a;2 7 …

【Python】webp图片转jpg

webp这种图片格式&#xff0c;是谷歌公司专门针对谷歌浏览器发布的一种全新的图片格式。相对于传统的jpg和png格式&#xff0c;webp格式的优势非常明显&#xff0c;更小的体积和肉眼无法区别出来的压缩损耗。但是对于很多人来说&#xff0c;下载下来之后使用不太方便&#xff0…

HT1621B新版本字段式驱动显示芯片替代PC1621K

PC1621K是一个32*4的LCD驱动器&#xff0c;可软体程控使其适用于多样化的LCD应用线路&#xff0c;仅用到3至4条讯号线便可控制LCD驱动器&#xff0c;除此之外也可介由指令使其进入省电模式 特色&#xff1a; 工作电压&#xff1a;2.4-5.2V 内建256KHz RC oscillator可外接 …

keil生成bin文件(通用型)

有些时候需要在keil里面生成bin文件&#xff0c;但找到的各种方式五花八门&#xff0c;特别是要填写文件路径等没有通用性&#xff0c;搞个不同的工程就得改下&#xff0c;找到这个跟路径无关的代码&#xff0c;进行记录下。 首先还是点开keil的设置&#xff1a; 按照上面的图…

from pycocotools.coco import COCO报错

需要注意的是&#xff0c;自己的系统是windows还是linux的系统&#xff1a; windows系统的安装&#xff1a; pip install pycocotools-windows linux的系统安装&#xff1a; pip install pycocotools 别用错了命令哦&#xff01;

html创建电子邮件链接

refer: 可以在a标签里使用&#xff1a; <a href"mailto:nameemail.com">Email</a>

【数据结构】平衡树引入

数据结构-平衡树 前置知识 二叉树二叉树的中序遍历 问题 维护一个数据结构&#xff0c;支持插入元素、删除元素、查询元素的排名、查询排名对应的元素、查询元素的前驱、查询元素的后继等。 BST&#xff08;二叉搜索树&#xff09; 作为一个基本无效&#xff08;很容易卡掉…

【大模型】800万纯AI战士年末大集结,硬核干货与音乐美食12月28日准时开炫

文章目录 WAVE SUMMIT五载十届&#xff0c;AI开发者热血正当时酷炫前沿、星河共聚&#xff01;大模型技术生态发展正当时 回望2023年&#xff0c;大语言模型或许将是科技史上最浓墨重彩的一笔。从技术、产业到生态&#xff0c;大语言模型在突飞猛进中加速重构万物。随着理解、生…

解决Sortable拖动el-table表头时,由于选择列造成的拖拽顺序错乱的bug

原因 由于我的表头是由数组循环遍历生成的&#xff0c;而选择列不在数组内&#xff0c;只能在循环外定义el-table-column&#xff0c;造成拖动时索引错乱错误代码 <el-tableheader-dragend"headerDragend"id"out-table":data"state.sliceTable&quo…

[Linux] ps命令详解

ps命令 ps命令用于显示当前系统中的进程状态信息。以下是ps命令的一些常见参数及其作用&#xff1a; ps命令的基本形式&#xff1a; ps这将显示当前用户自己的运行中的进程的快照。 参数选项&#xff1a; -a: 显示所有进程&#xff0c;包括其他用户的进程。 -u: 显示与用户相…

Tomcat9运行 tomcat9w.exe 提示“指定服务未安装”

Tomcat9运行 tomcat9w.exe 提示“指定服务未安装” 问题描述解决方案 问题描述 Tomcat启动项目时&#xff0c;命令窗口显示内存不足&#xff0c;网上查到博客提到需要 运行 tomcat9w.exe 修改内存设置&#xff0c;运行 tomcat9w.exe 时提示如下。 解决方案 配置环境变量CAT…

第2章-第1节-Java变量相关规则及注意事项

1、什么是变量&#xff1a; 概念&#xff1a;内存中的一块存储区域/空间&#xff0c;有数据类型的限定/约束&#xff0c;可以存入匹配类型的单个数据&#xff0c;并且根据需要可以随时改变其数据内容&#xff1b; 特点&#xff1a;可以存储匹配类型的单个数据&#xff0c;不过…

prometheus+alertmanager监控告警消息推送自定义接口

在prometheus的告警方案中&#xff0c;alertmanager提供了邮件、Slack、webhook等多种通知方式的支持 本篇主要介绍如何通过webhook方式将告警消息发送到自己的告警媒介 首先&#xff0c;部署alertmanager应用&#xff0c;此处不再赘述 配置webhook_configs为我们搭建的web服…