首页 > 学院 > 开发设计 > 正文

AbstractPlatformTransactionManager(Spring事务底层核心类)API讲解翻译

2019-11-06 08:47:23
字体:
来源:转载
供稿:网友

抽象基类实现SPRing的标准事务工作流,担任基础混凝土平台事务管理器如JtaTransactionManager和DataSourceTransactionManager。

这个基类提供了以下工作流程处理:

确定如果有现有的事务;应用适当的传播行为;如果有必要暂停和恢复事务;提交时检查rollback-only标记;应用适当的修改当回滚(实际回滚或设置rollback-only);触发同步回调注册(如果事务同步是激活的)

子类必须实现特定的模板方法对特定状态的事务,例如:.: begin,suspend, resume, commit, rollback。最重要的是必须提供的抽象和具体实现;其余,提供默认值,所以最重要的是可选的。

事务同步对于注册回调是一种通用的机制,在事务完成时调用,这主要是内部使用的数据访问JDBC支持类,Hibernate,JDO等运行时在一个JTA事务,注册资源打开关闭在事务完成的事务时间内,允许例如重用相同的Hibernate会话内的事务,相同的机制也可以用于自定义同步需要在应用程序中,这个类是可序列化的,以允许序列化的事务策略以及代理事务拦截器,这由子类决定如果他们想使他们的状态是可序列化的。他们应该实现java . io .可串行化的标记接口在这种情况下,和一个潜在的私人readObject()方法(根据Java序列化规则)如果他们需要恢复任何瞬态。

内部类 Summary

protected static class

AbstractPlatformTransactionManager.SuspendedResourcesHolder          暂停资源的持有者.

字段 Summary

protected  Log

logger          瞬态优化序列化

static int

SYNCHRONIZATION_ALWAYS         总是激活事务同步,甚至为“empty”的事务,由于没有现有后端事务的传播支持

static int

SYNCHRONIZATION_NEVER         永远不激活事务同步,即使实际的交易

static int

SYNCHRONIZATION_ON_ACTUAL_TRANSACTION       只为实际的事务  激活事务同步,不为空的,结果从没有现有后端事务的PROPAGATION_SUPPORTS.

Method Summary

 void

commit(TransactionStatus status)        这个实现提交处理现有事务和参与编程回滚的请求

protected  int

determineTimeout(TransactionDefinition definition)      使用给定的定义确定实际的超时.

protected abstract  void

doBegin(Object transaction,TransactionDefinition definition)          开始一个新事务,根据给定的语义

protected  void

doCleanupAfterCompletion(Object transaction)          事务完成后清理资源.

protected abstract  void

doCommit(DefaultTransactionStatus status)         执行给定一个事务的实际提交.

protected abstract  Object

doGetTransaction()          返回一个事务对象的当前事务的状态

protected  void

doResume(Object transaction,Object suspendedResources)          恢复当前事务的资源.

protected abstract  void

doRollback(DefaultTransactionStatus status)          执行一个给定的实际回滚事务.

protected  void

doSetRollbackOnly(DefaultTransactionStatus status)         设置给定的事务rollback-only.

protected  Object

doSuspend(Object transaction)          暂停当前事务的资源.

 int

getDefaultTimeout()          返回默认的超时,这事务管理器应该应用的,如果没有超时在指定事务级别,在几秒钟内

 TransactionStatus

getTransaction(TransactionDefinition definition)          这个实现处理传播行为.

 int

getTransactionSynchronization()         返回如果这个事务管理器应该激活线程事务同步支持

protected  void

invokeAfterCompletion(List synchronizations, int completionStatus)           Actually invoke the afterCompletion methods of the given

实际调用afterCompletion给定Spring TransactionSynchronization对象的方法

protected  boolean

isExistingTransaction(Object transaction)          Check if the given transaction object indicates an existing

检查给定的事务对象是否表明现有的事务(也就是说,一个事务已经开始)

 boolean

isFailEarlyOnGlobalRollbackOnly()          返回是否早期失败的事务被全局标记为rollback-only

 boolean

isGlobalRollbackOnParticipationFailure()          返回是否全局标记已存在的事务为rollback-only,后参与事务失败

 boolean

isNestedTransactionAllowed()          返回是否允许嵌套的事务.

 boolean

isRollbackOnCommitFailure()        返回是否应该进行做回滚当调用commit失败的

protected  DefaultTransactionStatus

newTransactionStatus(TransactionDefinition definition,Object transaction, boolean newTransaction, boolean newSynchronization, boolean debug,Object suspendedResources)          创建一个新的TransactionStatus给定参数,初始化事务同步

protected  void

registerAfterCompletionWithExistingTransaction(Object transaction,List synchronizations)          注册给定的事务列表同步与现有的事务.

protected  void

resume(Object transaction,AbstractPlatformTransactionManager.SuspendedResourcesHolder resourcesHolder)          恢复给定的事务

 void

rollback(TransactionStatus status)          参与现有事务的具体回滚实现.

 void

setDefaultTimeout(int defaultTimeout)          设置默认的时间超时,如果在事务级别没有具体指导,在几秒钟范围内

 void

setFailEarlyOnGlobalRollbackOnly(boolean failEarlyOnGlobalRollbackOnly)          是否fail early当一个事务被标记为全局 rollback only

 void

setGlobalRollbackOnParticipationFailure(boolean globalRollbackOnParticipationFailure)          是否全局设置已存在的事务为rollback-only当参与事务失败.

 void

setNestedTransactionAllowed(boolean nestedTransactionAllowed)          设置是否允许嵌套事务.

 void

setRollbackOnCommitFailure(boolean rollbackOnCommitFailure)          设置是否应该执行doRollback doCommit调用失败.

 void

setTransactionSynchronization(int transactionSynchronization)         设置当这个事务管理器应该激活线程绑定的事务同步支持.

 void

setTransactionSynchronizationName(String constantName)          设置事务同步通过相应的常数在这个类的名称,例如:

protected  boolean

shouldCommitOnGlobalRollbackOnly()          是否回在被全局标记为rollback-only的事务上调用doCommit。

protected  AbstractPlatformTransactionManager.SuspendedResourcesHolder

suspend(Object transaction)          暂停给定的事务.

protected  void

triggerBeforeCommit(DefaultTransactionStatus status)          触发beforeCommit回调.

protected  void

triggerBeforeCompletion(DefaultTransactionStatus status)          触发beforeCompletion回调.

protected  boolean

useSavepointForNestedTransaction()         返回是否使用嵌套事务的保存点.


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表