日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

(Spring)声明式事务

發布時間:2025/3/20 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (Spring)声明式事务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spring中的事務管理

Spring在不同的事務管理API之上定義了一個抽象層,使得開發人員不必了解底層的事務管理API就可以使用Spring的事務管理機制。Spring支持編程式事務管理和聲明式的事務管理。

編程式事務管理

  • 將事務管理代碼嵌到業務方法中來控制事務的提交和回滾

  • 缺點:必須在每個事務操作業務邏輯中包含額外的事務管理代碼

聲明式事務管理

  • 一般情況下比編程式事務好用。

  • 將事務管理代碼從業務方法中分離出來,以聲明的方式來實現事務管理。

  • 將事務管理作為橫切關注點,通過aop方法模塊化。Spring中通過Spring AOP框架支持聲明式事務管理。

使用Spring管理事務,注意頭文件的約束導入 : tx

xmlns:tx="http://www.springframework.org/schema/tx"http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

事務管理器

  • 無論使用Spring的哪種事務管理策略(編程式或者聲明式)事務管理器都是必須的。

  • 就是 Spring的核心事務管理抽象,管理封裝了一組獨立于技術的方法。

JDBC事務

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /> </bean>

配置事務的通知

<!--配置事務通知--> <tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><!--配置事務的傳播特性--><tx:method name="add" propagation="REQUIRED"/><tx:method name="delete" propagation="REQUIRED"/><tx:method name="update" propagation="REQUIRED"/><tx:method name="search*" propagation="REQUIRED"/><tx:method name="get" read-only="true"/><tx:method name="*" propagation="REQUIRED"/></tx:attributes> </tx:advice>

spring事務傳播特性:
事務傳播行為就是多個事務方法相互調用時,事務如何在這些方法間傳播。spring支持7種事務傳播行為:

  • propagation_requierd:如果當前沒有事務,就新建一個事務,如果已存在一個事務中,加入到這個事務中,這是最常見的選擇。

  • propagation_supports:支持當前事務,如果沒有當前事務,就以非事務方法執行。

  • propagation_mandatory:使用當前事務,如果沒有當前事務,就拋出異常。

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

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

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

  • propagation_nested:如果當前存在事務,則在嵌套事務內執行。如果當前沒有事務,則執行與propagation_required類似的操作

Spring 默認的事務傳播行為是 PROPAGATION_REQUIRED,它適合于絕大多數的情況。

配置AOP
要先導入aop的頭文件!

<!--配置aop織入事務--> <aop:config><aop:pointcut id="txPointcut" expression="execution(* com.kuang.dao.*.*(..))"/><aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/> </aop:config>

總結

以上是生活随笔為你收集整理的(Spring)声明式事务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。