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

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.lryc.cn/news/585629.html

相关文章:

  • C++设计秘籍:为什么所有参数都需类型转换时,非成员函数才是王道?
  • Python-正则表达式-信息提取-滑动窗口-数据分发-文件加载及分析器-浏览器分析-学习笔记
  • (补充)RS422
  • Qt 实现新手引导
  • 分布式推客系统全栈开发指南:SpringCloud+Neo4j+Redis实战解析
  • 【世纪龙科技】几何G6新能源汽车结构原理教学软件
  • 【龙泽科技】新能源汽车维护与动力蓄电池检测仿真教学软件【吉利几何G6】
  • 重构下一代智能电池“神经中枢”:GCKontrol定义高性能BMS系统级设计标杆
  • Java :T extends Comparable<? super T> 和 T extends Comparable<T>的区别
  • 李沐动手学深度学习Pytorch-v2笔记【07自动求导代码实现】
  • 标准化模型格式ONNX介绍:打通AI模型从训练到部署的环节
  • 第十五章 STL(stack、queue、list、set、map容器使用)
  • Nginx 添加 Stream 模块(不覆盖已安装内容)
  • Java 中使用 Stream 将 List 转换为 Map 实战笔记(生产级版)
  • 【Freertos实战】零基础制作基于stm32的物联网温湿度检测(教程非常简易)持续更新中.........
  • 计算机网络第三章(5)——数据链路层《广域网》
  • 【网络编程】KCP——可靠的 UDP 传输协议——的知识汇总
  • 触控屏gt1947
  • 数据治理到底是什么?搞清这四件事,你就彻底明白了!
  • 【C++】内联函数inline以及 C++入门(4)
  • 静态路由综合配置实验报告
  • python实现DoIP基本通信(收发报文)
  • 深入探索Kafka Streams:企业级实时数据处理实践指南
  • 外媒:蚂蚁数科等科技公司在香港数字资产枢纽建设中显身手
  • 基于强化学习的智能推荐系统优化实践
  • 星云穿越与超光速飞行特效的前端实现原理与实践
  • 运筹说 第140期 | 从直觉到算法:这些奠基人如何塑造了启发式方法的科学根基?
  • 分享|2025年机器学习工程师职业技术证书报考指南
  • ABP VNext + Microsoft YARP:自定义反向代理与请求路由
  • 七牛云运维面试题及参考答案