我有一些遺留代碼,我現在試圖在Spring下重用。這段代碼深深地嵌套在其他代碼中,所以重新設計並不實際,並且在許多情況下被調用,其中只有一些是通過Spring。我想要做的是使用Spring事務,如果已經開始的話;否則,繼續使用現有的(遺留)數據庫連接機制。我們的第一個想法是讓我們的遺留類成爲一個bean,並使用注入的TransactionPlatformManager
,但似乎沒有任何與我們的情況密切相關的方法。一些研究表明,Spring有一個名爲TransactionSynchronizationManager
的類,它有一個靜態方法isActualTransactionActive()
。我的測試表明,這種方法是檢測是否Spring事務處於活動狀態的可靠方法:有沒有更好的方法來檢測Spring數據庫事務是否比使用TransactionSynchronizationManager.isActualTransactionActive()更有效?
- 當通過Spring服務稱爲無
@Transactional
註釋,則返回false - 當通過Spring服務調用
@Transactional
,它返回真正 - 在我的傳統方法中調用現有的方式,則返回false
我的問題:是否有檢測,如果交易活躍更好的辦法?
謝謝!那很完美。 – fool4jesus