事務傳播特性

1.前言。 
在聲明式的事務處理中,要配置一個切面,即一組方法,如
Java代碼  收藏代碼
  1. <tx:advice id="txAdvice" transaction-manager="txManager">  
  2.     <tx:attributes>  
  3.         <tx:method name="find*" read-only="true" propagation="NOT_SUPPORTED" />  
  4.     </tx:attributes>  
  5. </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.注意. 
這個配置將影響數據存儲,必須根據情況選擇。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章