1
在我的弹簧配置中,我为两个不同的数据库定义了两个事务管理器。有没有办法在春季检查运行时是否给定的方法在事务内运行,其次(更重要的是)从哪个事务管理器创建该事务。如何从Spring 3.0中创建交易管理器创建的
在我的弹簧配置中,我为两个不同的数据库定义了两个事务管理器。有没有办法在春季检查运行时是否给定的方法在事务内运行,其次(更重要的是)从哪个事务管理器创建该事务。如何从Spring 3.0中创建交易管理器创建的
您可以使用TransactionSynchronizationManager
。它有很多方法可以告诉你交易是否有效,名称是什么。您可以获取资源图(getResourceMap()
)并验证里面的内容。
该类中的所有内容都是ThreadLocal
,因此它会为您提供有关当前事务的信息。
然而,文件说:
要通过资源管理代码,但不典型的应用程序代码中使用。
目前尚不清楚为什么你会需要这些信息。 Spring使用声明性事务,以便实际代码不必知道(并处理)事务行为。如果您需要区分代码中的事务管理器,那么可能是错误的。
我知道内部应该如何工作,但当时并不确定他们是否按规范工作。 – 2011-08-03 10:00:12