Spring - 如何在事务方法中获取对 TransactionStatus 对象的引用

Spring - How to get reference to TransactionStatus object in a Transactional method

在服务层中使用 @Transactional 时,是否有任何选项可以获取对 PlatformTransactionManager 创建的 TransactionStatus 实例的引用?

例如,在下面的代码中:

@Transactional
public void updateCustomer(...) {
    // do some business stuff
    // can we get here a reference to the TransactionStatus instance ?
}
TransactionStatus status = TransactionAspectSupport.currentTransactionStatus();

currentTransactionStatus方法returns当前方法调用的事务状态。

如果您对交易结果感兴趣,可以考虑TransactionSynchronizationAdapter which provides a convenient afterCompletion(int status)回调:

class AfterCompletionTransactionHandler
        extends TransactionSynchronizationAdapter {

    public @Override void afterCompletion(int status) { ... }

}