Spring中的事務

2021-10-21 01:11:02 字數 3292 閱讀 9569

事務的acid原則:

一致性(consistency)

隔離性(isolation)

永續性(durability)

spring在不同的事務管理api之上定義了乙個抽象層,使得開發人員不必了解底層的事務管理api就可以使用spring的事務管理機制。spring支援程式設計式事務管理和宣告式的事務管理。

程式設計式事務管理

宣告式事務管理

使用spring管理事務,注意標頭檔案的約束匯入 : tx

xmlns:tx=""

/spring-tx.xsd">

事務管理器jdbc事務

"transactionmanager"

class

="org.springframework.jdbc.datasource.datasourcetransactionmanager"

>

name

="datasource"

ref="datasource"

/>

bean

>

配置好事務管理器後我們需要去配置事務的通知

<

tx:adviceid=

"txadvice"

transaction-manager

="transactionmanager"

>

<

tx:attributes

>

<

tx:method

name

="add"

propagation

="required"

/>

<

tx:method

name

="delete"

propagation

="required"

/>

<

tx:method

name

="update"

propagation

="required"

/>

<

tx:method

name

="search*"

propagation

="required"

/>

<

tx:method

name

="query"

read-only

="true"

/>

<

tx:method

name

="get"

propagation

="required"

/>

<

tx:method

name

="*"

propagation

="required"

/>

tx:attributes

>

tx:advice

>

spring事務傳播特性:事務傳播行為就是多個事務方法相互呼叫時,事務如何在這些方法間傳播。spring支援7種事務傳播行為:

spring 預設的事務傳播行為是 propagation_required,它適合於絕大多數的情況。

假設 servivex#methodx() 都工作在事務環境下(即都被 spring 事務增強了),假設程式中存在如下的呼叫鏈:service1#method1()->service2#method2()->service3#method3(),那麼這 3 個服務類的 3 個方法通過 spring 的事務傳播機制都工作在同乙個事務中。

就好比,我們剛才的幾個方法存在呼叫,所以會被放在一組事務當中!

配置aop

匯入aop的標頭檔案!

資料庫結果不變,事務開啟成功。

為什麼需要配置事務?

spring中的事務控制

我們之前學了動態 而關於實物這塊,在每個service方法中總就那麼幾句話,而且地方也是固定的,所以我們也考慮用動態 來解決它,只是在spring中,框架已經為我們寫好了通知類,我們直接配置就好了,跟之前aop配置稍微有點不同,事務有它自己的配法,不過也差不多,看 這是我寫的乙個方法,模擬轉賬 pu...

Spring中的事務控制

一般而言,使用者的每次請求都對應乙個業務邏輯方法,並且每個業務邏輯方法往往具有邏輯上的原子性。此外,乙個業務邏輯方法往往包括一系列資料庫原子訪問操作,並且這些資料庫原子訪問操作應該繫結成乙個整體,即要麼全部執行,要麼全部不執行,通過這種方式我們可以保證資料庫的完整性,這就是事務。總的來說,事務是乙個...

Spring中的事務總結

spring 支援的事務策略,包括兩種 spring boot 的事務原理 兩種事務管理方式 全面分析spring的程式設計式事務和宣告式事務 bankservicetarget class footmark.spring.core.tx.declare.classic.bankserviceimp...