簡體   English   中英

Springs @Transactional僅適用於代理

[英]Springs @Transactional only works for proxy

我有一個使用Springs @Transactional進行數據庫回滾的方法。 當我像這樣定義事務管理器時它工作正常:

    <tx:annotation-driven transaction-manager="txManager" mode="proxy" />

但當我更改為mode="aspectj"它不會在方法拋出異常時回滾。

這兩種模式應該如何使用?

只有在啟用了加載時編織或編譯時編織時,“aspectj”模式才有效。 如果不是,那么@Transactional注釋將不會應用於帶注釋的方法。

默認代理模式不能用於注釋private方法。 這是aspectj模式很有用的地方。 某些框架(例如Web服務的W2O)需要類類型本身才能工作。 使用代理模式這是不可能的,因為類包含在代理類包裝器中。 這是使用AspectJ另一個原因。

如果使用public方法並且沒有特殊的框架限制,那么代理模式就足夠了。

另請參見: 事務管理

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM