Spring18——Spring事务角色(事务管理员、事务协调员)

news2024/12/27 10:59:52

39-Spring事务角色

这部分我们重点要理解两个概念,分别是事务管理员事务协调员

当未开启Spring事务时
在这里插入图片描述

  • AccountDao的outMoney因为是修改操作,会开启一个事务T1
    AccountDao的inMoney因为是修改操作,会开启一个事务T2
  • AccountService的transfer没有事务,
    • 运行过程中如果没有抛出异常,则T1和T2都正常提交,数据正确
    • 如果在两个方法中间抛出异常,T1因为执行成功提交事务,T2因为抛异常不会被执行
    • 就会导致数据出现错误

当开启Spring的事务管理后
在这里插入图片描述

  • transfer上添加了@Transactional注解,在该方法上就会有一个事务T
  • 因为T1 T2都在T的控制范围内,所以
    AccountDao的outMoney方法的事务T1加入到transfer的事务T中
    AccountDao的inMoney方法的事务T2加入到transfer的事务T中
  • 现在整体就相当于只有T一个事务了,这样就保证他们在同一个事务中,当业务层中出现异常,整个事务就会回滚,保证数据的准确性

通过上面例子的分析,我们就可以得到如下概念:

  • 事务管理员:发起事务方,在Spring中通常指代业务层开启事务的方法
  • 事务协调员:加入事务方,在Spring中通常指代数据层方法,也可以是业务层方法

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

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

相关文章

爬虫(反调试)

其实就是一种给页面反爬机制,一般页面用不到。 万能解决反调试方法:

康师傅涨价背后:是自救还是失策?

涨价策略虽缓解成本压力,却可能导致消费者忠诚度下降,促使消费者转向竞品,加剧康师傅市场份额的流失。 转载:原创新熵 作者丨璐萱 编辑丨蕨影 康师傅方便面又双叒叕涨价了! 今年5月份以来,在人们感叹买不…

C++与Rust那些事之跳过析构函数

C与Rust那些事之跳过析构函数 在Rust中mem::forget用于防止对象的析构,跳过清理工作,从而让资源的释放交给其他机制管理。 例如: let file File::open("foo.txt").unwrap(); mem::forget(file); 那么在C中如何防止析构&#xff1f…

滚柱导轨适配技巧与注意事项!

滚柱导轨是一种重要的传动元件,它由滚柱作为滚动体。用于连接机床的运动部件和床身基座,其设计旨在提供高承载能力和高刚度,适用于重型机床和精密仪器,而滚柱导轨的适配方法对于确保机械设备的高精度运行至关重要。 滚柱导轨的适配…

conda 创建虚拟环境 Anconda虚拟环境

1、创建虚拟python环境: 通过构建虚拟环境,可避免与其他人的软件版本冲突。 conda create -n name python2.x 例如创建名字为xgli的虚拟环境,python的版本为2.7.3,则命令为: conda create -n ia2024 python2.7&…

web基础-攻防世界

get-post 一、WP (题目本质:get与post传参方法) 用 GET 给后端传参的方法是:在?后跟变量名字,不同的变量之间用&隔开。例如,在 url 后添加/?a1 即可发送 get 请求。 利用 hackbar 进行…

DBMS-4 数据库存储

存储结构 一.表空间 1.概念:一张数据表在数据库空间中以一个表空间的形式存储。表空间由数据段、索引段、回滚段组成,分别记录一张表的不同信息。 2.层次信息 (1)一个表空间(TableSpace)由多个段(Segment)构成; &…

四、Spring Boot集成Spring Security之认证流程

Spring Boot集成Spring Security之认证流程 一、概要说明二、基于内存的用户名密码1、默认用户名密码2、自定义用户名密码3、为方便测试添加测试接口TestController 三、登录登出重要概念介绍四、登录业务逻辑1、登录业务相关过滤器2、访问业务请求处理流程①、访问业务请求地址…

AI核身-金融场景凭证篡改检测Baseline实践

金融领域交互式自证业务中涵盖信用成长、用户开户、商家入驻、职业认证、商户解限等多种应用场景,通常都需要用户提交一定的材料(即凭证)用于证明资产收入信息、身份信息、所有权信息、交易信息、资质信息等,而凭证的真实性一直是…

力扣19.删除链表的倒数第N个节点

题目链接:19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode) 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2输出:[1,2,3,…

【Linux调试工具】gdb/cgdb

文章目录 gdb 简介gdb 的主要功能 gdb的用法如何进入gdb显示代码如何运行程序如何打断点和取消断点逐语句调试逐行逐行执行代码(s)调试工具 总结 gdb 简介 GDB(GNU Debugger)是GNU项目中的一款强大的调试工具,广泛应用…

数字隔离器的技术竞争

长期以来,光耦合器一直被人们信赖,因为它能够在电路的不同部分之间提供电气隔离,确保信号的安全传输,同时保护元件免受高压影响。然而,近年来,数字隔离器已成为一种强大的替代品,在速度、寿命和…

Map的实现类:TreeMap

1.存储结构:红黑树 2.实现了SortedMap接口(是Map的子接口),可以对key自动排序。 3.实例代码:Student类和Demo03 如果出现类转换异常 参考【TreeSet(红黑树)】 package com.map;import java…

苍穹外卖P19--异常处理

以上传数据库数据重复为例,进行异常处理。 接口文档报错: 重新启动:

Arduino中使用PS2手柄

目录 1、PS2手柄介绍 2、PS2库文件添加 3、Auduino代码 4、测试 5、测试程序和库文件下载连接 1、PS2手柄介绍 PS2手柄介绍见下面博客 STM32中使用PS2手柄_stm32 ps2-CSDN博客 PS2手柄按钮分布 2、PS2库文件添加 库文件和测试程序一起打包提供下载 3、Auduino代码 #in…

【数据结构】二叉堆一文详解,附demo

有时候也挺迷惑的,技术那么多,感觉学什么都来不及,又什么都得学,经常一看别人,哇,比你年轻比你厉害,然后自己emo一下又要鸡血模式,就挺无语的,但愿我们的坚持与努力都不白…

“炫我”受邀出席虚拟现实及元宇宙产业创新论坛!

当前,新一轮科技革命和产业变革向纵深演进,虚拟现实及元宇宙等相关产业加速发展,催生了新产业新业态新模式,发展潜力巨大、应用前景广阔。 9月27日,由北京市科学技术委员会、中关村科技园区管理委员会,北京…

攻防世界1

pwnstack 发现是64位文件 发现vuln双击进入 看到read知道这里是要将B1(177)的数据输入buf,这里涉及了栈溢出 发现system和binsh 后门 A8十进制是168 exp: from pwn import * context(oslinux,archamd64,log_leveldebug) io rem…

生产及质量BI应用场景方案(可编辑37页PPT)

荐言分享:随着全球化的深入发展,制造业面临的竞争日益激烈。为了在市场中脱颖而出,企业需要不断提升自身的生产效率、降低成本,同时保证产品质量。现代消费者的需求日益多样化,对产品的个性化、定制化和品质要求越来越…

【unity踩坑】打开vs2022没有文字联想/杂项文件

unity打开vs2022没有文字联想 修改外置编辑器安装unity开发插件vs编辑器显示杂项文件 修改外置编辑器安装unity开发插件 参考 在unity项目里选择Edit-> Preferences->External Tools然后更换编辑器 在vs工具界面添加unity游戏开发选项。 重新打开还是有问题&#xff…