Spring将数据附加到当前事务

时间:2014-04-09 21:46:08

标签: java spring transactions

有没有办法在Spring中访问当前事务?我的目标是在事务启动时向事务添加一些信息,并在同一事务中的所有方法调用中使用该信息。

以下是EJB的解决方案:How can i attach data to a JTA transaction? (or uniquely identify it)我正在寻找与spring相同的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以使用ThreadLocal将数据附加到线程,然后使用TransactionSynchronizationManager清除ThreadLocal,从而有效地创建事务范围变量:

TransactionSynchronizationManager.registerSynchronization(
    new TransactionSynchronizationAdapter() {
        @Override
        public void afterCompletion() {
            ... clear the ThreadLocal ...
        }
    }
);