1
在我的彈簧配置中,我爲兩個不同的數據庫定義了兩個事務管理器。有沒有辦法在春季檢查運行時是否給定的方法在事務內運行,其次(更重要的是)從哪個事務管理器創建該事務。如何從Spring 3.0中創建交易管理器創建的
在我的彈簧配置中,我爲兩個不同的數據庫定義了兩個事務管理器。有沒有辦法在春季檢查運行時是否給定的方法在事務內運行,其次(更重要的是)從哪個事務管理器創建該事務。如何從Spring 3.0中創建交易管理器創建的
您可以使用TransactionSynchronizationManager
。它有很多方法可以告訴你交易是否有效,名稱是什麼。您可以獲取資源圖(getResourceMap()
)並驗證裏面的內容。
該類中的所有內容都是ThreadLocal
,因此它會爲您提供有關當前事務的信息。
然而,文件說:
要通過資源管理代碼,但不典型的應用程序代碼中使用。
目前尚不清楚爲什麼你會需要這些信息。 Spring使用聲明性事務,以便實際代碼不必知道(並處理)事務行爲。如果您需要區分代碼中的事務管理器,那麼可能是錯誤的。
我知道內部應該如何工作,但當時並不確定他們是否按規範工作。 – 2011-08-03 10:00:12