spring 事務管理有兩種方式:一種是
程式設計式事務管理
,即通過編寫**實現事物管理,
包括定義事務的開始,程式正常執行後的事物提交,異常時進行的事務回滾
。另一種是
基於aop技術實現的宣告式事務管理
,其主要思想是將事務管理作為乙個「切面」**單獨編寫,我們只用關心核心業務邏輯**,然後通過aop技術將事務管理的「切面」**織入到業務類中。
宣告式事務管理
又包括基於aop方式的事務管理
和基於 @transactional註解方式的事務管理
。宣告式事務管理極大的簡化了程式設計式事務管理的操作流程,不再需要重複地執行定義事物的開始,程式正常執行後事務提交,異常時進行事物回滾這些繁瑣的操作,而基於 @transactional註解的宣告式事務又進一步簡化了基於aop的事務管理,減少了spring配置**。
宣告式事務的缺點在於
只能作用到方法級別
,無法做到像程式設計式事務那樣能控制到**塊級別。
事務規則也就是事務傳播行為,用於解決業務層方法之間的相互呼叫的問題。常見的事物傳播行為可分為以下幾種:
名稱說明
required
表示當前方法必須執行在乙個事物環境中,如果乙個現有的事物正在執行,該方法將執行在這個事務中,否則,就要開始乙個新的事務
requiresnew
表示當前方法必須執行在自己的事務裡
supports
表示當前方法不需要事務處理環境,但如果有乙個事務正在執行的話,則這個方法也可以執行在這個事務中
mandatory
表示當前方法必須執行在乙個事務上下文中,否則就丟擲異常
never
表示當前方法不應該執行在乙個事務上下文中,否則就丟擲異常
事務管理的主要任務是事務的建立,事務的回滾和事務的提交,是否需要建立事務及如何建立事務,是由事務傳播行為控制的,通常資料的讀取可以不需要事務管理,或者可以指定為唯讀事務,而對於資料的增加,刪除和修改操作,則有必要進行事務管理。如果沒有指定事務的傳播行為,spring預設採用required。
Spring中事務管理
spring提供的事務管理可以分為兩類 程式設計式的和宣告式的。程式設計式的,比較靈活,但是 量大,存在重複的 比較多 宣告式的比程式設計式的更靈活。傳統使用jdbc的事務管理 以往使用jdbc進行資料操作,使用datasource,從資料來源中得到connection,我們知道資料來源是執行緒安全...
Spring中事務管理
一 事務 1.事務邏輯上的一組操作,組成這組操作的各個邏輯單元,要麼一起成功,要麼一起失敗 2.事務特性 1 原子性 強調事務的不可分割 2 一致性 事務的執行的前後資料的完整性保持一致 3 隔離性 乙個事務執行過程中,不應該收到其他事務的干擾 4 永續性 事務一旦結束,資料就持久到資料庫中 3.事...
spring中的事務管理
一 簡單介紹 spring中的事務管理主要是用來管理對資料庫進行操作的事務,一般是應用於service層。分為幾種 1.程式設計式事務管理 如jdbc中設定取消資料庫的自動提交功能 conn datasource.getconnection conn.setautocommit false 此處表示...