Spring宣告式事務控制

2022-09-18 19:45:12 字數 2322 閱讀 6379

什麼是事務控制?

與資料庫建立連線connection後,每一次的進行查詢、更新操作,如果沒有將其歸為乙個事務,則是獨立進行的。

而這樣會導致一些錯誤場景的發生。(經典的如銀行轉賬業務,轉出方錢減少了,期間發生了異常,對方的錢卻沒有到賬等情況)

為什麼要先了解程式設計式事務?

宣告式事務底層即通過程式設計式事務進行控制。而其中有部分引數、資訊需要了解,再在xml中進行配置。

故而需要了解程式設計式事務的相關物件、定義資訊。

platformtransactionmanager介面是 spring的事務管理器,它裡面提供了我們常用的操作事務的方法。

注意:

platformtransactionmanager是介面型別,不同的dao層技術則有不同的實現類,例如:

dao層技術是jdbc或mybatis時:org.springframework.jdbc.datasource.datasourcetransactionmanager

dao層技術是hibernate時:org.springframework.orm.hibernate5.hibernatetransactionmanager

transactiondefinition 是事務的定義資訊物件,裡面有如下方法:

1.事務隔離級別(isolation)

設定隔離級別,可以解決事務併發產生的問題,如髒讀、不可重複讀和虛讀。

2.事務傳播行為(propogation)transactionstatus 介面提供的是事務具體的執行狀態,方法介紹如下。

程式設計式事務控制三大物件

什麼是宣告式事務控制?

spring 的宣告式事務顧名思義就是採用宣告的方式來處理事務。這裡所說的宣告,就是指在配置檔案中宣告 ,用在 spring 配置檔案中宣告式的處理事務來代替**式的處理事務。

宣告式事務處理的作用

注意:spring宣告式事務控制底層就是aop實現的。

宣告式事務控制明確事項:

由其是aop實現的。故而可以想到:

1.引入tx命名空間

2.配置事務增強

3.配置事務aop織入

4.測試事務控制轉賬業務**
@override

public void transfer(string outman, string inman, double money)

之後可以看到,由其轉出轉入在同乙個事務控制之下。即transfer方法下的操作屬於同一事務,在異常發生時,沒有進行事務提交,故而不會出現業務問題。

其中,《tx:method》 代表切點方法的事務引數的配置,例如:

這裡使用註解進行宣告式事務控制。

1.編寫accountdao

@repository("accountdao")

public class accountdaoimpl implements accountdao

public void in(string inman, double money)

}

2.編寫accountservice
@service("accountservice")

@transactional

public class accountserviceimpl implements accountservice

}

註解的相關配置詳解

使用 @transactional 在需要進行事務控制的類或是方法上修飾,註解可用的屬性同 xml 配置方式,例如隔離 級別、傳播行為等。

註解使用在類上,那麼該類下的所有方法都使用同一套註解引數配置。

使用在方法上,不同的方法可以採用不同的事務引數配置。

xml配置檔案中要開啟事務的註解驅動

Spring配置宣告式事務控制

transactionmanager class org.springframework.jdbc.datasource.datasourcetransactionmanager name datasource ref datasource property bean tx adviceid txm...

Spring宣告式事務

net.sf.hibernate.dialect.oracle9dialect false true net.sf.hibernate.transaction.jdbctransactionfactory 1025 用heibernate來管理事務 當用spring和heibernate一起完成da...

spring宣告式事務

1.什麼是事務 事務是程式中一系列嚴密的操作,所有操作執行必須成功完成,否則在每個操作所做的更改將會被撤銷,這也是事務的原子性 要麼成功,要麼失敗 2.事務的特性 事務特性分為四個 原子性 atomicity 一致性 consistency 隔離性 isolation 持續性 durability ...