spring提供的事務管理可以分為兩類:程式設計式的和宣告式的。程式設計式的,比較靈活,但是**量大,存在重複的**比較多;宣告式的比程式設計式的更靈活。
傳統使用jdbc的事務管理
***************=
以往使用jdbc進行資料操作,使用datasource,從資料來源中得到connection,我們知道資料來源是執行緒安全的,而連線不是執行緒安全的,所以對每個請求都是從資料來源中重新取出乙個連線。一般的資料來源由容器進行管理,包括連線池。例如tomcat,websphere,weblogic等這些j2ee商業容器都提供了這個功能。
以往的我們使用jdbc在寫**時,事務管理可能會是這樣:
connection conn = null;
trycatch(exception e)
finally
catch(sqlexception se)
//close resultset,preparedstatement,connection
//notice:maybe ocurr exception when u close rs,pstmt,conn
}按照以往的思路來寫**,**量比較長,而且容易疏忽,忘掉一些try/catch,引發一些異常無法catch,雖然有時候我們會寫dbtool類,來關閉這些資源,並且保證在關閉這些資源時,不向外拋異常。
spring提供的程式設計式的事務處理
***************===
spring提供了幾個關於事務處理的類: transactiondefinition //事務屬性定義
transcationstatus //代表了當前的事務,可以提交,回滾。
platformtransactionmanager這個是spring提供的用於管理事務的基礎介面,其下有乙個實現的抽象類abstractplatformtransactionmanager,我們使用的事務管理類例如datasourcetransactionmanager等都是這個類的子類。
我們使用程式設計式的事務管理流程可能如下:
1 宣告資料來源
2 宣告乙個事務管理類,例如datasourcetransactionmanager,hibernatetransactionmanger,jtatransactionmanager等
3 在我們的**中加入事務處理**:
transactiondefinition td = new transactiondefinition();
transactionstatus ts = transactionmanager.gettransaction(td);
trycatch(exception e)
使用spring提供的事務模板transactiontemplate
void add()}}
transactiontemplate也是為我們省去了部分事務提交、回滾**;定義事務模板時,需注入事務管理物件.
spring宣告式事務處理
**********===
spring宣告式事務處理也主要使用了ioc,aop思想,提供了transactioninterceptor***和常用的**類transactionproxyfactorybean,可以直接對元件進行事務**。
使用transactioninterceptor步驟
1.定義資料源,事務管理類
2.定義事務***,such as:
com.test.usermanager.*r=propagation_required
3.為元件宣告乙個**類:proxyfactorybean
com.test.usermanager
使用transactionproxyfactorybean:
propagation_required
propagation_required
propagation_required,readonly
transactionproxyfactorybean只是為元件的事務**,如果我們要給元件新增一些業務方面的驗證等,可以使用transactiontemplate加***方式,為元件新增多個***,spring aop中提供了三類advice,即前增強,後增強,丟擲異常時的增強,可以靈活使用。
Spring中事務管理
一 事務 1.事務邏輯上的一組操作,組成這組操作的各個邏輯單元,要麼一起成功,要麼一起失敗 2.事務特性 1 原子性 強調事務的不可分割 2 一致性 事務的執行的前後資料的完整性保持一致 3 隔離性 乙個事務執行過程中,不應該收到其他事務的干擾 4 永續性 事務一旦結束,資料就持久到資料庫中 3.事...
Spring事務管理
spring是ssh中的管理員,負責管理其它框架,協調各個部分的工作。今天一起學習一下spring的事務管理。spring的事務管理分為宣告式跟程式設計式。宣告式就是在spring的配置檔案中進行相關配置 程式設計式就是用註解的方式寫到 裡。下面先說宣告式 spring配置檔案中關於事務配置總是由三...
spring事務管理
一 xml配置事務 二 註解的方式配置事務 bean id txmanaager class org.springframework.orm.hibernate3.hibernatetransactionmanager property name sessionfactory ref session...