spring aop中的propagation的7種配置

1.前言 

在聲明式的事務處理中,要配置一個切面,即一組方法,如

	<tx:advice id="txAdvice" transaction-manager="txManager">
		<tx:attributes>
			<tx:method name="find*" read-only="true" propagation="NOT_SUPPORTED" />
		</tx:attributes>
	</tx:advice>
其中就用到了propagation,表示打算對這些方法怎麼使用事務,是用還是不用,其中propagation有七種配置,REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED。默認是REQUIRED。

2.七種配置

下面是Spring中Propagation類的事務屬性詳解:

REQUIRED:支持當前事務,如果當前沒有事務,就新建一個事務。這是最常見的選擇。

SUPPORTS:支持當前事務,如果當前沒有事務,就以非事務方式執行。

MANDATORY:支持當前事務,如果當前沒有事務,就拋出異常。

REQUIRES_NEW:新建事務,如果當前存在事務,把當前事務掛起。

NOT_SUPPORTED:以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。

NEVER:以非事務方式執行,如果當前存在事務,則拋出異常。

NESTED:支持當前事務,如果當前事務存在,則執行一個嵌套事務,如果當前沒有事務,就新建一個事務。

3.注意

這個配置將影響數據存儲,必須根據情況選擇。


轉載地址:http://nannan408.iteye.com/blog/1754882



發佈了169 篇原創文章 · 獲贊 62 · 訪問量 77萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章