类 TransactionSync
java.lang.Object
cn.nkpro.elcube.basic.TransactionSync
Spring 事务同步管理器的包装
因为Spring自身的
TransactionSynchronizationManager只能增加一个同步任务,而不能完全满足单据模型的复杂事务机制
主要有3中运行情况
1、beforeCommit 在事务提交前执行,如果事务回滚,不执行
2、afterCommit 在事务提交后执行,如果事务回滚,不执行
3、afterCompletion 在事务完成后执行,不论事务提交与回滚,都会执行
beforeCommit 与 afterCommit 的队列区别:
beforeCommit 的队列中,一旦任务发生异常,则终止后续的任务
afterCommit与afterCompletion 的队列中,即使一个任务发生异常,后续的任务仍然执行
last:没有last标记的方法,添加的任务按顺序执行,被标记为last的方法,任务倒序执行
即最先添加到last对列里的任务,最末执行,以此类推- 作者:
- bean 2021-12-03
-
嵌套类概要
嵌套类修饰符和类型类说明static interfacestatic interface -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static voidrunAfterCommit(String taskDesc, TransactionSync.Function t)在事务提交后执行函数static voidrunAfterCommitLast(String taskDesc, TransactionSync.Function t)在事务提交后执行函数static voidrunAfterCompletion(String taskDesc, TransactionSync.FunctionCompletion t)static voidrunAfterCompletionLast(String taskDesc, TransactionSync.FunctionCompletion t)static voidrunBeforeCommit(String taskDesc, TransactionSync.Function t)在事务提交前执行函数
-
构造器详细资料
-
TransactionSync
public TransactionSync()
-
-
方法详细资料
-
runBeforeCommit
在事务提交前执行函数
如果当前上下文没有事务,则立即执行
- 参数:
t- t
-
runAfterCommit
- 参数:
t- t
-
runAfterCommitLast
在事务提交后执行函数
将函数放置队列后执行
如果当前上下文没有事务,则立即执行
- 参数:
t-
-
runAfterCompletion
-
runAfterCompletionLast
-