Spring2 0事務配置及事務理解

2021-08-29 11:04:52 字數 1165 閱讀 7558

spring2.0事務配置及事務理解

**1.

2.

4.

5. 6.

7. 8.

9. />

10.

11.

12.

13.

isolation設定事務的隔離級別,事務管理器根據它來控制另外乙個事務可以看到本事務內的哪些資料。

定義的5個不同的事務隔離級別:

default:預設的隔離級別,使用資料庫預設的事務隔離級別

read_committed:保證乙個事務修改的資料提交後才能被另外乙個事務讀取。另外乙個事務不能讀取該事務未提交的資料。這種事務隔離級別可以避免髒讀出現,但是可能會出現不可重複讀和幻像讀。

read_uncommitted:這是事務最低的隔離級別,它充許別外乙個事務可以看到這個事務未提交的資料。這種隔離級別會產生髒讀,不可重複讀和幻像讀。

repeatable_read:這種事務隔離級別可以防止髒讀,不可重複讀。但是可能出現幻像讀。它除了保證乙個事務不能讀取另乙個事務未提交的資料外,還保證了避免不可重複讀。

serializable:這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。除了防止髒讀,不可重複讀外,還避免了幻像讀。

propagation定義了7個事務傳播行為

required: 如果存在乙個事務,則支援當前事務。如果沒有事務則開啟乙個新的事務。

supports: 如果存在乙個事務,支援當前事務。如果沒有事務,則非事務的執行。但是對於事務同步的事務管理器,supports與不使用事務有少許不同。

requires_new 總是開啟乙個新的事務。如果乙個事務已經存在,則將這個存在的事務掛起。

not_supported 總是非事務地執行,並掛起任何存在的事務。

never 總是非事務地執行,如果存在乙個活動事務,則丟擲異常

nested:如果乙個活動的事務存在,則執行在乙個巢狀的事務中. 如果沒有活動事務, 則按transactiondefinition.propagation_required 屬性執行。

巢狀事務乙個非常重要的概念就是內層事務依賴於外層事務。外層事務失敗時,會回滾內層事務所做的動作。而內層事務操作失敗並不會引起外層事務的回滾。

required應該是我們首先的事務傳播行為。它能夠滿足我們大多數的事務需求。

參考:

Spring2 0事務配置及事務理解

spring2.0事務配置及事務理解2007 12 28 18 24 isolation設定事務的隔離級別,事務管理器根據它來控制另外乙個事務可以看到本事務內的哪些資料。定義的5個不同的事務隔離級別 default 預設的隔離級別,使用資料庫預設的事務隔離級別 read committed 保證乙個...

Spring 2 0及以上AOP 切點配置整理

常見的情況 示例1 com.accp.service.service.com.accp.service 包 com.accp.service com.accp.service.包 com.accp.service 及其子包,比如 com.accp.service.abc com.accp.servi...

spring 事務配置

自己寫的乙個關於事務的配置例子,很簡單 主要是spring的事務可以借助於aop直接環繞在target屬性所對應操作的周圍。無須為事務寫多餘的 即輕便又減少了耦合。配置檔案部分 bean.xml 由於是簡單的例子所以就不寫那麼規範了 class部分 package com.f9inux.test i...