使用XML Schema配置spring事務管理

2021-07-13 20:43:28 字數 1470 閱讀 5868

spring支援程式設計式事務策略和宣告式事務策略,但是通常都推薦使用宣告式事務策略;

使用宣告式事務策略的優勢很明顯:

1、宣告式事務能大大降低開發者的**書寫量,無論底層事務策略如何變化,應用程式都無需改變
2、spring宣告式事務管理無需容器的支援,可以在任何環境下使用
3、通過配置檔案,spring可以指定事務在遇到特定異常時自動回滾
4、spring採用aop的方式管理事務

spring2.x的xml schema方式提供了講解的事務配置策略,使用tx:命名空間來配置事務管理,tx:命名空間下提供了元素來配置事務的增強處理,一旦使用該元素配置了事務增強處理,就可以直接使用元素啟動自動**了

元素除了需要transaction-manager屬性指定事務管理器之外,還需要配置乙個子元素,該子元素裡又可包含多個子元素,每個子元素都為一批方法指定了所需要的事務定義,包括事務的傳播屬性、事務的隔離屬性、事務超時屬性、唯讀事務、對指定異常回滾、對指定異常不回滾等。

可以指定如下幾個屬性:

name:必填屬性,與該事務相關聯的方法名,支援萬用字元,eg:'get*','on*event';

propagation:指定事務的傳播行為,預設為propagation.required;

isolation:事務的隔離級別,預設為isonlation.default;

timeout:指定事務超時的時間,單位是秒,指定-1表示不超時,預設值為-1;

read-only:指定事務是否唯讀,該屬性預設為false;

rollback-for:指定觸發事務回滾的異常類(要使用全限定類名),該屬性可以指定多個異常類,異常類之間用英文逗號隔開;

no-rollback-for:指定不觸發事務回滾的異常類(要使用全限定類名),可以指定多個異常,用英文逗號隔開。

tips:如果事務增強處理bean的id是transactionmanager,則在配置元素時就可以省略指定transaction-manager屬性

使用@transactional註解配置事務管理

@transactional註解如果修飾bean類,則表明事務對整個bean類起作用;如果修飾的是bean類中的某個方法,則表明該事物只對該方法有效。

使用@transactional時可以指定如下屬性:

1、isolation:隔離級別

2、norollbackfor:指定特定異常不回滾

3、norollbackforclassname:指定多個特定異常不回滾

4、propagation:指定事物傳播行為

5、readonly:事務唯讀

6、rollbackfor:指定特定異常回滾

7、rollbackforclassname:指定多個特定異常回滾

8、timeout:指定事務超時時長

使用註解時,要在配置檔案中開啟註解:

XML Schema使用基礎

xml extensible markup language 可擴充套件標記語言 1.xml宣告 檔案符合xml1.0規範,文字編碼為utf 8 2.命名空間 當我們使用不同文件的相同標籤時會發生衝突,使用命名空間來避免衝突。xmlns mvc xmlns context xmlns xsi xsi...

使用XML Schema驗證XML資料輸入

現在xml使用的越來越多,在sql server表中我們可以建立xml列儲存資料。昨天在論壇看到有人說建立了乙個儲存過程處理xml,但是插入目標表的時候報錯,而報的錯誤不詳細。其實這個問題的根本原因是xml的資料有問題,應該在插入的時候對輸入的資料進行驗證 對於使用者輸入的資料一定要做驗證 其實sq...

SP3458晶元相關配置

sp3481和sp3485是一系列 3.3v低功耗半雙工收發器,它們完全滿足rs 485和rs 422序列協議的要求。這兩個器件與sipex的sp481 sp483和sp485的管腳互相相容,同時相容工業標準規範。sp3481和sp3485符合rs 485和rs 422序列協議的電氣規範,資料傳輸速...