Spring 事务上文 使用SpringJDBC
1、JDBC事务控制
? 不管你现在使用的是那一种ORM开发框架,只要你的核心是JDBC,那么所有的事务处理都是围绕着JDBC开展的,而JDBC之中的事务控制是由Connection接口提供的方法:
在程序的开发之中事务的使用是存在有
- 1、关闭自动事务提交:connection.setAutoCommit(false);
- 2、事务手工提交: connection.commit();
- 3、事务回滚: connection.rollback();
前提的
:如果某一个业务现在需要同时执行若干条数据更新处理操作,这个时候才会使用到事务控制,除此之外是不需要强制性处理的 。
文章插图
按照传统的事务控制处理方法来讲一般都是在业务层进行处理的,而在之前分析过了如何基于AOP 设计思想采用1.1、ACID事务原则ACID主要指的是事务的四种特点:动态代理
设计模式实现的事务处理模型,这种操作可以在不侵入业务代码的情况下进行事务的控制,但是代码的实现过程实在是繁琐,现在既然都有了AOP处理模型
了 , 所以对于事务的控制就必须有一个完整的加强 。
原子性(Atomicity)、一致性(Consistency)、隔离性或独立性(lsolation)、持久性(Durabilily)
四个特征:2、Spring事务架构
- 原子性(Atomicity):整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节 。事务在执行过程中发生错误 , 会被回滚(Rollback)到事务开始前的状态 , 就像这个事务从来没有执行过一样;
- 一致性(Consistency):一个事务可以封装状态改变(除非它是一个只读的) 。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少;
- 隔离性(lsolation):隔离状态执行事务 , 使它们好像是系统在给定时间内执行的唯一操作 。如果有两个事务,运行在相同的时间内 , 执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统;
- 持久性(Durability):在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被
回滚
。
Spring事务是对已有JDBC事务的进一步的包装型处理,所以底层依然是JDBC事务控制
,而后在这之上进行了更加合理的二次开发与设计,首先先来看一下Spring 与JDBC事务之间的结构图 。
文章插图
? 只要是说到了事务的开发,那么就必须考虑到ORM组件的整合问题各类的ORM开发组件实在是太多了 , 同时Spring在设计的时候无法预知未来 , 那么这个时候在Spring 框架
里面就针对于事务的接入提供了一个开发标准
。
? Spring事务的核心实现关键是在于:PlatformTransactionManager
文章插图
通过以上的代码可以发现,PlatfrmTransactionManager接口存在有一个TransactionManager父接口,下面打开该接口的定义来观察其具体功能 。
文章插图
? 在现代的开发过程之中,最为核心的事务接口主要使用的是PlatformTransactionManager(这也就是长久以来的习惯),在Spring最早出现声明式事务的时候,就有了这个处理接口了 。在进行获取事务的时候可以发现getTransaction()方法内部需要接收有一个TransactionDefinition接口实例,这个接口主要定义了Spring事务的超时时间
,以及Spring事务的传播属性
(是面试的关键所在),而在getTransaction()方法内部会返回有一个TransactionStatus接口实例,打开这个接口来观察一下 。.
public interface TransactionStatus extends TransactionExecution, SavepointManager, Flushable { boolean hasSavepoint(); // 是否存在hasSavepoint (事务保存点) void flush(); // 事务刷新}
而后该接口内部定义的时候又需要继承TransactionExecution、SavepointManager(事务保存点管理器)、Flushable(事务刷新)三个父接口 。下图就是Spring事务的整体架构 。
文章插图
3、编程式事务控制
由于现在很少用到这种编程式事务了,导致很多初学者根本不知道这其中是怎么配置的 。其实万变不离其宗 , 都是基于JDBC的事务控制 。推荐阅读
- 空调漏氟的原因有哪些 五招轻松搞定空调漏氟问题
- 蚂蚁花呗怎么还款 三步就可以搞定
- 千元换屏100块搞定 苹果xr换外屏玻璃多少钱
- 怎样鉴别真假蜂蜜,几个方法搞定 怎样鉴别真假蜂蜜
- 醉驾找什么关系可搞定 醉驾找关系的最佳时间是什么时候
- 怎么样换备胎视频教程 如何换备胎教你这九步轻松搞定
- 六点识别真假驾照 驾驶证怎么辨别真假?6个窍门,3秒搞定!
- 科三靠边停车30公分操作技巧,四步搞定 科目三靠边停车30公分一把过技巧
- 科目三靠边停车30cm技巧,简单5步就搞定 科目三靠边停车30cm技巧
- 酒驾找什么关系可搞定 驾驶员酒驾找关系可以摆平