![](/img/trans.png)
[英]Spring @Transactional only works if caller is also @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.