spring 源码分析 平台事务管理

AOP 事务对象 (PlatformTransactionManager)

PlatformTranscationManager 平台事务管理作为事务的通用 API 处理。
提供三个方法:

1、根据事务定义创建事务状态

TransactionStatus getTransaction (TransactionDefinition definition) ;

2、根据事务状态执行事务提交

void commit(TransactionStatus status);

3、根据事务状态执行事务回滚

void rollback(TransactionStatus status);

平台抽象层 AbstractPlatformTransactionManagerPlatformTranscationManager 接口方法进行了实现。并延伸了4个抽象方法 doGetTransaction()doBegin()doCommit()doRollback()… 等抽象方法。


DataSourceTransactionManager 分析

数据源事务管理, 继承抽象平台事务管理器. 封装着 DataSource 对象. 实现平台抽象层方法。

一、doGetTransaction()

1、创建 DataSourceTransactionObject 对象。 其主要操作的就是 java.sql.Connection 连接,通过创建保存点(java.sql.Savepoint)、回滚保存点、释放保存点.
2、创建 ConnectionHolder 数据库连接对象持有者,并设置给 DataSourceTransactionObject 对象

二、doBegin(DataSourceTransactionObject, TransactionDefinition)

1、将资源标记为与事务同步,获取 Connection 连接对象
2、获取早先的隔离级别,设置给 DataSourceTransactionObject
3、检索此 连接 对象的当前自动提交模式
4、在事务开始后立即准备事务 Connection,设置事务已开启
5、设置超时时间

三、doCommit(DefaultTransactionStatus)

1、通过 DefaultTransactionStatus 得到 DataSourceTransactionObject 对象获取 ConnectionHolder 连接持有者中 Connection 提交事务

四、doRollback(DefaultTransactionStatus)

1、通过 DefaultTransactionStatus 得到 DataSourceTransactionObject 对象获取 ConnectionHolder 连接持有者中 Connection 回滚事务

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值