spring 的 transactionManager 事務管理器 配置


轉:

 

事務的傳播特<tx:advice id="txadvice" transaction-manager="transactionManager">

<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
           <!-- 讀取操作 -->
<tx:method name="load*" propagation="REQUIRED" isolation="DEFAULT" read-only="true"/>
<tx:method name="get*" propagation="REQUIRED" isolation="DEFAULT" read-only="true"/>
<tx:method name="find*" propagation="REQUIRED" isolation="DEFAULT" read-only="true"/>
</tx:attributes>
</tx:advice>

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

 

<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'

 


免責聲明!

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



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