spring的特色之一,簡單而強大的事務管理功能,包括程式設計式事務和宣告式事務。
1.spring中涉及到事務管理的api有100多個,核心的只有三個:
transactiondefinition、platformtransactionmanager、transactionstatus。所謂事務管理,其實就是「按照給定的事務規則來執行提交或者回滾操作」。「給定的事務規則」就是用 transactiondefinition 表示的,「按照……來執行提交或者回滾操作」便是用 platformtransactionmanager 來表示,而 transactionstatus 用於表示乙個執行著的事務的狀態。
2.transactiondefinition,
該介面在前面已經介紹過,它用於定義乙個事務。它包含了事務的靜態屬性,比如:事務傳播行為、超時時間等等。spring 為我們提供了乙個預設的實現類:defaulttransactiondefinition,該類適用於大多數情況。如果該類不能滿足需求,可以通過實現 transactiondefinition 介面來實現自己的事務定義。
3.platformtransactionmanager
用於執行具體的事務操作。
public inte***ce platformtransactionmanager
根據底層所使用的不同的持久化 api 或框架,platformtransactionmanager 的主要實現類大致如下:
4.程式設計式事務需要你在**中直接加入處理事務的邏輯,可能需要在**中顯式呼叫begintransaction()、commit()、rollback()等事務管理相關的方法,如在執行a方法時候需要事務處理,你需要在a方法開始時候開啟事務,處理完後。在方法結束時候,關閉事務.
宣告式的事務的做法是在a方法外圍新增註解或者直接在配置檔案中定義,a方法需要事務處理,在spring中會通過配置檔案在a方法前後攔截,並新增事務.
二者區別.程式設計式事務侵入性比較強,但處理粒度更細.
相當於乙個是手動事務,另乙個是系統自動事務。
程式設計試事務就是需要手工寫**提交事務,回滾事務等。宣告性事務就是在配置檔案裡面定義一下什麼時候需要事務,到時候系統會自動commit,出異常了自動rollback,不需要在**裡面寫commit或者rollback。
Spring事務管理
spring是ssh中的管理員,負責管理其它框架,協調各個部分的工作。今天一起學習一下spring的事務管理。spring的事務管理分為宣告式跟程式設計式。宣告式就是在spring的配置檔案中進行相關配置 程式設計式就是用註解的方式寫到 裡。下面先說宣告式 spring配置檔案中關於事務配置總是由三...
spring事務管理
一 xml配置事務 二 註解的方式配置事務 bean id txmanaager class org.springframework.orm.hibernate3.hibernatetransactionmanager property name sessionfactory ref session...
spring 事務管理
和資料庫打交道的碼農都知道事務,事務有4大特徵,分別是原子性,一致性,隔離性,永續性。而spring 對事物提供了良好的支援,和api,通過簡單的配置,則可以減低程式設計師重複的操作。1.原子性 原子性指的是乙個事務內的所有操作要麼全部應用到資料庫,要麼取消對資料庫的操作。2.一致性 一致性和原子性...