当前位置: 首页 > ops >正文

Spring的事务控制——学习历程

思考:


1. 事务是干什么的?

        2. 事务的特性?

        3. 事务控制的传播方式(传播行为)

        4. 事务的隔离级别

        5. 事务是如何实现的?

        6. 事务的回滚方式

        7.  事务失效场景

回答:

1. 事务和锁,还有版本控制 都是为了保证数据一致性的。

2. 事务都是围绕着ACID来的(分布式事务CAP),A是原子性,把整个事务看做为一个不可分的原子,必须都对,或者都错;C是一致性,事务执行前,数据库处于一致状态;执行后,即使发生故障,数据库仍须保持一致性(例如:转账前后总金额不变);I是隔离性,事务和事务之间相互隔离,互不干扰;D是持久性,他主要是针对数据库层面,一旦事务完成,他的CRUD就都保存在数据库里,被持久化了。

3. Spring 支持多种事务传播行为,例如:

  • PROPAGATION_REQUIRED:如果当前存在事务,则加入该事务;否则新建一个事务。
  • PROPAGATION_REQUIRES_NEW:无论当前是否存在事务,都新建事务,并挂起当前事务。
  • PROPAGATION_SUPPORTS:支持当前事务,不存在则以非事务方式执行。
  • PROPAGATION_MANDATORY:必须存在事务,否则抛出异常。
  • PROPAGATION_NEVER:不能存在事务,否则抛出异常。
  • PROPAGATION_NESTED:在嵌套事务中执行。

4. 事务的隔离级别相比MySQL数据库多了一个级别:默认( DEFAULT

  • DEFAULT:使用数据库默认的隔离级别。

        MySQL的隔离级别有:可序列化 > 可重复度(幻读) > 读已提交(脏读) > 读未提交

5. 是采用的AOP方法,@Transaction为标识,每次开启动态代理(Java的动态代理,JDK),在同一个线程内,多个 DAO 操作可以共享同一个数据库连接和事务。当事务提交或回滚后,这些资源会被释放。

6.回滚方式:(我记得好像可以调节隔离级别查看事务的回滚过程【之前尝试过,现在有点不清晰了】)

  • 默认情况下,Spring 只对运行时异常(RuntimeException 及其子类)和 Error 进行回滚。
  • 可以通过 rollbackFor 和 noRollbackFor 属性自定义哪些异常触发回滚。

7.(鞭策AI给的一份应面回答)

补充:

1.  JDK代理 和 CGLIB代理的区别 :前者靠反射, 后者考继承,前者主要针对接口类,后者针对非接口,非final的类

http://www.xdnf.cn/news/15135.html

相关文章:

  • HarmonyOS NEXT端云一体化开发初体验
  • [Dify] -基础入门4-快速创建你的第一个 Chat 应用
  • 牛客:HJ17 坐标移动[华为机考][字符串]
  • Leaflet面试题及答案(1-20)
  • [实战]调频三角波和锯齿波信号生成(完整C代码)
  • 深入浅出:什么是MCP(模型上下文协议)?
  • 力扣网编程134题:加油站(双指针)
  • C++中柔性数组的现代化替代方案:从内存布局优化到标准演进
  • Debian:从GNOME切换到Xfce
  • 扫描文件 PDF / 图片 纠斜 | 图片去黑边 / 裁剪 / 压缩
  • I2C集成电路总线
  • Semi-Supervised Single-View 3D Reconstruction via Prototype Shape Priors
  • 基于Java Spring Boot开发的旅游景区智能管理系统 计算机毕业设计源码32487
  • linux网络编程之单reactor模型(一)
  • Python 数据建模与分析项目实战预备 Day 2 - 数据构建与字段解析(模拟简历结构化数据)
  • 【前端】【组件库开发】【原理】【无框架开发】现代网页弹窗开发指南:从基础到优化
  • GNhao,获取跨境手机SIM卡跨境通信新选择!
  • 手机恢复出厂设置怎么找回数据?Aiseesoft FoneLab for Android数据恢复工具分享
  • Java中的泛型继承
  • 深度学习篇---昇腾NPUCANN 工具包
  • 《Java EE与中间件》实验三 基于Spring Boot框架的购物车
  • BLOB 数据的插入与读取详解
  • Linux驱动学习day22(interrupt子系统)
  • [python]在drf中使用drf_spectacular
  • 卢比危机下的金融破局:科伦坡交易所技术升级作战图
  • SpringBoot JWT
  • NFS文件存储及论坛项目搭建(php)
  • Web攻防-SSTI服务端模版注入利用分类语言引擎数据渲染项目工具挖掘思路
  • MCU芯片内部的ECC安全机制
  • OpenCV图像基本操作:读取、显示与保存