spring配置事務

2021-08-30 10:40:15 字數 2437 閱讀 7681

<?xml version="1.0" encoding="utf-8"?>  

spring

使用 :advice

>和 用來配置事務,具體如何配置你可以參考spring

文件。

我解釋一下(* com.evan.crm.service.*.*(..))中幾個萬用字元的含義:

|第乙個 * —— 通配 任意返回值型別|

|第二個 * —— 通配 包com.evan.crm.service下的任意class|

|第三個 * —— 通配 包com.evan.crm.service下的任意class的任意方法|

|第四個 .. —— 通配 方法可以有0個或多個引數|

綜上:包com.evan.crm.service下的任意class的具有任意返回值型別、任意數目引數和任意名稱的方法

:advice

/> 有關的設定

這一節裡將描述通過 :advice

/> 標籤來指定不同的事務性設定。預設的 :advice

/> 設定如下:

事務傳播設定是 required

隔離級別是 default

事務是 讀/寫

事務超時預設是依賴於事務系統的,或者事務超時沒有被支援。

任何 runtimeexception 將觸發事務回滾,但是任何 checked exception 將不觸發事務回滾

這些預設的設定當然也是可以被改變的。 :advice

/> 和 :attributes/> 標籤裡的 :method/> 各種屬性設定總結如下:

表 9.1. :method/> 有關的設定

屬性 是否需要?

預設值描述

name

是 與事務屬性關聯的方法名。萬用字元(*)可以用來指定一批關聯到相同的事務屬性的方法。 如:'get*'、'handle*'、'on*event'等等。

propagation

不 required

事務傳播行為

isolation

不 default

事務隔離級別

timeout

不 -1

事務超時的時間(以秒為單位)

read-only

不 false

事務是否唯讀?

rollback-for

不 將被觸發進行回滾的 exception(s);以逗號分開。 如:'com.foo.mybusines***ception,servletexception'

no-rollback-for

不 不 被觸發進行回滾的 exception(s);以逗號分開。 如:'com.foo.mybusines***ception

3、了解事務的幾種傳播特性

1. propagation_required: 如果存在乙個事務,則支援當前事務。如果沒有事務則開啟

2. propagation_supports: 如果存在乙個事務,支援當前事務。如果沒有事務,則非事務的執行

3. propagation_mandatory: 如果已經存在乙個事務,支援當前事務。如果沒有乙個活動的事務,則丟擲異常。

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

5. propagation_not_supported: 總是非事務地執行,並掛起任何存在的事務。

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

7. propagation_nested:如果乙個活動的事務存在,則執行在乙個巢狀的事務中. 如果沒有活動事務,

則按transactiondefinition.propagation_required 屬性執行

4、spring事務的隔離級別

1. isolation_default: 這是乙個platfromtransactionmanager預設的隔離級別,使用資料庫預設的事務隔離級別.

另外四個與jdbc的隔離級別相對應

2. isolation_read_uncommitted: 這是事務最低的隔離級別,它充許令外乙個事務可以看到這個事務未提交的資料。

這種隔離級別會產生髒讀,不可重複讀和幻像讀。

3. isolation_read_committed: 保證乙個事務修改的資料提交後才能被另外乙個事務讀取。另外乙個事務不能讀取該事務未提交的資料

4. isolation_repeatable_read: 這種事務隔離級別可以防止髒讀,不可重複讀。但是可能出現幻像讀。

它除了保證乙個事務不能讀取另乙個事務未提交的資料外,還保證了避免下面的情況產生(不可重複讀)。

5. isolation_serializable 這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。

除了防止髒讀,不可重複讀外,還避免了幻像讀。

spring 事務配置

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

spring事務配置

1 宣告式事務配置 配置sessionfactory 配置事務管理器 事務的傳播特性 那些類那些方法使用事務 具體配置如下 localsessionfactorybean classpath hibernate.cfg.xml 這個classpath是spring為我們提供的專門用來讀取classp...

配置spring 事務

三 在編寫買書方法 事務的傳播行為 乙個事務方法被另乙個事務方法呼叫,被呼叫的事務方法如何工作在事務中 使用propagation 指定事務的傳播行為,即當前的事務被另乙個事務方法呼叫時 transactional propagation propagation.required override ...