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 回滚事务


版权声明:本文为baidu_36327010原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/baidu_36327010/article/details/103479407