spring 事務的propagation配置

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:支持當前事務,如果當前事務存在,則執行一個嵌套事務,如果當前沒有事務,就新建一個事務。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章