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序列協議的電氣規範,資料傳輸速...