有關的設置


將描述通過 <tx:advice/> 標簽來指定不同的事務性設置。默認的 <tx:advice/> 設置如下:

  • 事務傳播設置是 REQUIRED

  • 隔離級別是 DEFAULT

  • 事務是 讀/寫

  • 事務超時默認是依賴於事務系統的,或者事務超時沒有被支持。

  • 任何 RuntimeException 將觸發事務回滾,但是任何 checked Exception 將不觸發事務回滾

這些默認的設置當然也是可以被改變的。 <tx:advice/> 和 <tx:attributes/> 標簽里的<tx:method/> 各種屬性設置總結如下:

<tx:method/> 有關的設置

屬性 是否需要? 默認值 描述
name  

與事務屬性關聯的方法名。通配符(*)可以用來指定一批關聯到相同的事務屬性的方法。 如:'get*''handle*''on*Event'等等。

propagation REQUIRED 事務傳播行為
isolation DEFAULT 事務隔離級別
timeout -1 事務超時的時間(以秒為單位)
read-only false 事務是否只讀?
rollback-for  

將被觸發進行回滾的 Exception(s);以逗號分開。 如:'com.foo.MyBusinessException,ServletException'

no-rollback-for  

 被觸發進行回滾的 Exception(s);以逗號分開。 如:'com.foo.MyBusinessException,ServletException'

Spring中propagation類的事務屬性詳解

 

    1. PROPAGATION_REQUIRED:         支持當前事務,如果當前沒有事務,就新建一個事務。這是最常見的選擇。 
    2. PROPAGATION_SUPPORTS:         支持當前事務,如果當前沒有事務,就以非事務方式執行。 
    3. PROPAGATION_MANDATORY:      支持當前事務,如果當前沒有事務,就拋出異常。 
    4. PROPAGATION_REQUIRES_NEW:   新建事務,如果當前存在事務,把當前事務掛起。
    5.  PROPAGATION_NOT_SUPPORTED:以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。 
    6. PROPAGATION_NEVER:               以非事務方式執行,如果當前存在事務,則拋出異常。 
    7. PROPAGATION_NESTED:              支持當前事務,如果當前事務存在,則執行一個嵌套事務,如果當前沒有事務,就新建一個事務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM