spring詳解(五) 事物管理

2022-08-23 10:24:10 字數 2881 閱讀 5391

1、作為企業級應用程式框架,spring 在不同的事務管理 api 之上定義了乙個抽象層. 而應用程式開發人員不必了解底層的事務管理 api, 就可以使用 spring 的事務管理機制。

2、spring 既支援程式設計式事務管理, 也支援宣告式的事務管理。

3、程式設計式事務管理: 將事務管理**嵌入到業務方法中來控制事務的提交和回滾. 在程式設計式管理事務時, 必須在每個事務操作中包含額外的事務管理**。

4、宣告式事務管理:大多數情況下比程式設計式事務管理更好用. 它將事務管理**從業務方法中分離出來, 以宣告的方式來實現事務管理.

事務管理作為一種橫切關注點,可以通過 aop 方法模組化. spring 通過 spring aop 框架支援宣告式事務管理。

spring 從不同的事務管理 api 中抽象了一整套的事務機制. 開發人員不必了解底層的事務 api, 就可以利用這些事務機制. 有了這些事務機制, 事務管理**就能獨立於特定的事務技術了.

spring 的核心事務管理抽象是

它為事務管理封裝了一組獨立於技術的方法. 無論使用 spring 的哪種事務管理策略(程式設計式或宣告式), 事務管理器都是必須的.

<

bean

id="transactionmanager"

class

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

>

<

property

name

="datasource"

ref="datasource"

>

property

>

bean

>

<

tx:advice

id="advice"

transaction-manager

="transactionmanager"

>

tx:advice

>

<

aop:config

>

<

aop:pointcut

expression

="execution(* com.zhiyou100.zjc.service.*.*(..))"

id="pointcut"

/>

<

aop:advisor

advice-ref

="advice"

pointcut-ref

="pointcut"

/>

aop:config

>

用 @transactional 註解宣告式地管理事務配置檔案示例**

<

bean

id="transactionmanager"

class

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

>

<

property

name

="datasource"

ref="datasource"

>

property

>

bean

>

<

tx:annotation-driven

/>

@service

public

class bookshopcashier implements

cashier }}

spring 支援的事務傳播行為(紅框中較為常用)

required 傳播行為

requires_new 傳播行為

另一種常見的傳播行為是 requires_new. 它表示該方法必須啟動乙個新事務, 並在自己的事務內執行. 如果有事務在執行, 就應該先掛起它.

xml中設定傳播行為

-----髒讀: 對於兩個事物 t1, t2, t1 讀取了已經被 t2 更新但 還沒有被提交的字段. 之後, 若 t2 回滾, t1讀取的內容就是臨時且無效的.

-----不可重複讀:對於兩個事物 t1, t2, t1 讀取了乙個字段, 然後 t2 更新了該字段. 之後, t1再次讀取同乙個字段, 值就不同了.

-----幻讀:對於兩個事物 t1, t2, t1 從乙個表中讀取了乙個字段, 然後 t2 在該表中插入了一些新的行. 之後, 如果 t1 再次讀取同乙個表, 就會多出幾行.

spring 支援的事務隔離級別

Spring事物註解管理詳解

要使事務註解有效,首先需要在spring配置檔案中加入如下 同時,必須引入tx 網域名稱。transactional的應用 加在service層或者dao層類名之上,或者是public方法上,表示該方法使用了事務,對於其它非public的方法,如果標記了 transactional也不會報錯,但方法...

Spring事物管理

spring 事物的管理是申明式事物,通過在spring的xml檔案中配置3個元件,來管理整個專案的事物.最初事物的概念是在資料庫中提出的,為了保證資料的安全性.事物通俗的說就是原子的操作流程,符合acid,分別為原子性,一致性,隔離性,永久性.原子性是指事物中多張表的資料操作,要嘛全部成功,如其中...

spring事物管理

事務 1.什麼是事務?事務是我們要執行的一系列操作,要麼完全執行,要麼完全不執行。這樣可以確保所有的操作都成功,否者不會跟新資料庫。2.事務有兩種結果 所有的操作執行成功,提交事務。如果有乙個操作執行失敗,將發生回滾,撤銷之前到事務發生開始時執行的操作。3.spring的事務使用 有兩個類datas...