加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Spring事务TransactionSynchronizationManager:isActualTransac

发布时间:2020-12-15 01:44:08 所属栏目:大数据 来源:网络整理
导读:我对Spring中的事务资源管理有点困惑.也就是说,我对TransactionSynchronizationManager.isActualTransactionActive和TransactionSynchronizationManager.isSynchronizationActive的使用感到困惑. 到目前为止,可能不正确,我假设使用isSynchronizationActive(

我对Spring中的事务资源管理有点困惑.也就是说,我对TransactionSynchronizationManager.isActualTransactionActive和TransactionSynchronizationManager.isSynchronizationActive的使用感到困惑.

到目前为止,可能不正确,我假设使用isSynchronizationActive(也在Spring代码库中)来确定是否存在由TransactionSynchronizationManager.initSynchronization()启动的活动事务.就我而言,当我们暂停一个事务时,实际的isSynchronizationActive仍然是真的!因此,我认为建立正在运行的事务的正确方法是使用isActualTransactionActive,对吗?

如果是这种情况,isSynchronizationActive方法的实际意义是什么?我理解它会告诉你是否可以添加同步,但我对它告诉我们有关交易的内容有点迷失…

最佳答案
您将注意到TransactionSynchronizationManager的以下字段

private static final ThreadLocal

和方法

public static boolean isSynchronizationActive() {
    return (synchronizations.get() != null);
}

public static boolean isActualTransactionActive() {
    return (actualTransactionActive.get() != null);
}

TransactionSynchronizationManager基本上充当TransactionSynchronization的注册表. javadoc说

If transaction synchronization isn’t active,there is either no
current transaction,or the transaction manager doesn’t support
transaction synchronization.

因此,您首先使用initSynchronization()和registerSynchronization(TransactionSynchronization)初始化并注册TransactionSynchronization.注册这些时,TransactionManager可以启动一个Transaction,并通过setActualTransactionActive(boolean)告诉TransactionSynchronizationManager它是否处于活动状态.

总之,isSynchronizationActive()告诉我们是否已启用TransactionSynchronization,即使没有注册任何TransactionSynchronization实例.

isActualTransactionActive()告诉我们实际的Transaction对象是否处于活动状态.

TransactionSynchronizationManager javadoc说明

Central helper that manages resources and transaction synchronizations
per thread. To be used by resource management code but not by typical
application code.

所以不要忽视它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读