[轉]tx:advice標簽簡介


 

《Spring高級程序設計》第16章事務管理,通過本章的學習,你知道了如何使用Spring去管理事務,而這種方式幾乎不會對你的源代碼產生任何影響。你現在知道了如何使用本地和全局事務,並知道了如何用活動事務來同步你的代碼。 本節為tx:advice標簽簡介。

AD:

16.6.3 tx:advice標簽簡介

正如在代碼清單16-23中所見,你需要在<tx:advice/>標簽內設置id和transaction-manager屬性。 id是該advice bean的標識,而transaction-manager則必須引用一個PlatformTransactionManager bean。

除了這兩個屬性以外,你還可以通過<tx:attributes />標簽定制<tx:advice />標簽所創建的通知的行為。這可以讓你對transactionAttributes屬性表達式所支持的屬性以更加結構化的方式進行配置。讓我們 看看代碼清單16-24,它展示了一個更復雜的<tx:advice />標簽。

代碼清單16-24 一個更復雜的<tx:advice />標簽

 

我們的事務通知所開啟的事務針對所有方法(只要方法名不以get開頭)的傳播為PROPAGATION_ REQUIRED隔離級別為READ_COMMITTED,超時為100 s。在這種情況下,事務定義將包括PROPAGATION_DEFAULT、ISOLATION_DEFAULT、TIMEOUT_DEFAULT,同時 read-only屬性被設為true。在上面這兩種情況下,任何運行時異常都會導致回滾。 

正如你所見,憑借<tx:attributes />標簽我們可以用更加簡練的方式創建transactionAttributes屬性表達式。此外,大多數IDE都提供了代碼完成功能(參見圖16-2)。

 

<tx:attributes />標簽只接受<tx:method />標簽作為其子元素。表16-5詳細說明了<tx:method />標簽的屬性。

表16-5 <tx:method />標簽的屬性

屬性

 

說明

name

方法名的匹配模式,通知根據該模式尋找匹配的方法。

該屬性可以使用asterisk (*)通配符

propagation

設定事務定義所用的傳播級別

isolation

設定事務的隔離級別

timeout

指定事務的超時(單位為秒)

read-only

該屬性為true指示事務是只讀的(典型地,

對於只執行查詢的事務你會將該屬性設為true,

如果出現了更新、插入或是刪除語句時只讀事務就會失敗)

no-rollback-for

以逗號分隔的異常類的列表,目標方法可以拋出

這些異常而不會導致通知執行回滾

rollback-for

以逗號分隔的異常類的列表,當目標方法拋出這些

異常時會導致通知執行回滾。默認情況下,該列表為空,

因此不在no-rollback-for列表中的任何運行

時異常都會導致回滾

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM