如何从Spring 3.0中创建交易管理器创建的

问题描述:

在我的弹簧配置中,我为两个不同的数据库定义了两个事务管理器。有没有办法在春季检查运行时是否给定的方法在事务内运行,其次(更重要的是)从哪个事务管理器创建该事务。如何从Spring 3.0中创建交易管理器创建的

您可以使用TransactionSynchronizationManager。它有很多方法可以告诉你交易是否有效,名称是什么。您可以获取资源图(getResourceMap())并验证里面的内容。

该类中的所有内容都是ThreadLocal,因此它会为您提供有关当前事务的信息。

然而,文件说:

要通过资源管理代码,但不典型的应用程序代码中使用。

目前尚不清楚为什么会需要这些信息。 Spring使用声明性事务,以便实际代码不必知道(并处理)事务行为。如果您需要区分代码中的事务管理器,那么可能是错误的。

+0

我知道内部应该如何工作,但当时并不确定他们是否按规范工作。 – 2011-08-03 10:00:12