Spring 事務屬性

2021-07-11 20:49:24 字數 1300 閱讀 6340

spring事務機制主要包括宣告式事務和程式設計式事務,此處側重講解宣告式事務,程式設計式事務在實際開發中得不到廣泛使用,僅供學習參考。

spring宣告式事務讓我們從複雜的事務處理中得到解脫。使得我們再也無需要去處理獲得連線、關閉連線、事務提交和回滾等這些操作。再也無需要我們在與事務相關的方法中處理大量的try…catch…finally**。

我們在使用spring宣告式事務時,有乙個非常重要的概念就是事務屬性。事務屬性通常由事務的傳播行為,事務的隔離級別,事務的超時值和事務唯讀標誌組成。我們在進行事務劃分時,需要進行事務定義,也就是配置事務的屬性。

spring在transactiondefinition介面中定義這些屬性,以供platfromtransactionmanager使用, platfromtransactionmanager是spring事務管理的核心介面。

isolation_defaultplatfromtransactionmanager預設的隔離級別,使用資料庫預設的事務隔離級別。另外四個與jdbc的隔離級別相對應;

isolation_read_uncommitted讀未提交

isolation_read_committed讀已提交

isolation_repeatable_read讀重複

isolation_serializable序列

(1)propagation_required如果存在乙個事務,則支援當前事務。如果沒有事務則開啟乙個新的事務。

(2)propagation_supports如果存在乙個事務,支援當前事務。如果沒有事務,則非事務的執行。

(3)propagation_mandatory如果已經存在乙個事務,支援當前事務。如果沒有乙個活動的事務,則丟擲異常。

(4)propagation_requires_new總是開啟乙個新的事務。如果乙個事務已經存在,則將這個存在的事務掛起。

(5)propagation_not_supported總是非事務地執行,並掛起任何存在的事務。

(6)propagation_never總是非事務地執行,如果存在乙個活動事務,則丟擲異常

(7)propagation_nested如果乙個活動的事務存在,則執行在乙個巢狀的事務中. 如果沒有活動事務, 則按transactiondefinition.propagation_required 屬性執行

spring事務屬性

事務屬性的種類 傳播行為 隔離級別 唯讀和事務超時 a 傳播行為定義了被呼叫方法的事務邊界。傳播行為 意義propergation mandatory 表示方法必須執行在乙個事務中,如果當前事務不存在,就丟擲異常 propagation nested 表示如果當前事務存在,則方法應該執行在乙個巢狀事...

spring 事務屬性

本文介紹spring事務的5個屬性 spring中,宣告事務是通過事務屬性來定義的。事務屬性描述了事務策略如何應用到方法上事務屬性包含5個方面 傳播行為定義了客戶端與被呼叫方法之間的事務邊界,即傳播規則回答了這樣的乙個問題,新的事務應該被啟動還是掛起,或者方法是否要在事務環境中執行。7中傳播規則 p...

Spring事務屬性

事務屬性的種類 傳播行為 隔離級別 唯讀和事務超時 a 傳播行為定義了被呼叫方法的事務邊界。傳播行為 意義 propergation mandatory 表示方法必須執行在乙個事務中,如果當前事務不存在,就丟擲異常 propagation nested 表示如果當前事務存在,則方法應該執行在乙個巢狀...