<?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 ...