spring 的事务管理

时间:2021-02-21 20:29:33

一。事务处理方式

1.  关系型数据库事务 处理

2. 传统的jdbc 事务处理

3. 分布式的事务 处理方

这三种事务处理方式 。前两种处理方式只适合处理一个数据库的事务操作。而后者可以处理多个事务操作。

二 。spring 的事务的工作机制

spring的事务处理一般是基于动态的aop 的机制实现的。aop   的 工作机制是采用代理的方式实现的。(动态代理: 要求必须实现一个接口。静态代理:一般指的是 CGLIB). 要求事务要么全部完成 ,要么全部失败(数据回滚)。从而保证的数据的一致性,隔离性 ,原子性 ,持久性。

三 。spring 中事务的 核心接口 【PlatformTransactionManager】

 
从源代码中可以看到 ,其核心接口 定义了三个代理的方法。  开启一个事务 ----》 提交事务----》事务回滚

其中 

TransactionDefinition 代表这事务的一些属性
spring 的事务管理

TransactionStatus 代表着 目前事务

spring 的事务管理

四 。spring 提供了两种事务处理

1. 编程式事务处理

2. 声明式事务处理  (借助 aop 来实现)