最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于XML的Spring聲明事務控制

 更新時間:2022年07月29日 09:20:04   作者:YonminMa  
這篇文章主要為大家詳細介紹了基于XML的Spring聲明事務控制,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Spring框架為我們提供好了事務控制器,我們不必自己寫事務控制器。下面就詳細說明基于XML配置Spring事務控制器的步驟。

1. 配置事務管理器

<!-- 配置事務管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
? ? <property name="dataSource" ref="dataSource"></property>
</bean>

2. 配置事務的通知

此時我們需導入事務的約束 tx名稱空間和約束,同時也需要AOP的約束

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
? ? ? ?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
? ? ? ?xmlns:aop="http://www.springframework.org/schema/aop"
? ? ? ?xmlns:tx="http://www.springframework.org/schema/tx"
? ? ? ?xsi:schemaLocation="
? ? ? ? http://www.springframework.org/schema/beans
? ? ? ? https://www.springframework.org/schema/beans/spring-beans.xsd
? ? ? ? http://www.springframework.org/schema/tx
? ? ? ? https://www.springframework.org/schema/tx/spring-tx.xsd
? ? ? ? http://www.springframework.org/schema/aop
? ? ? ? https://www.springframework.org/schema/aop/spring-aop.xsd">
?? ?
?? ?...
</beans>

使用<tx:advice>標簽配置事務通知

屬性:

  • id:給事務通知起一個唯一標識
  • transaction-manager:給事務通知提供一個事務管理器引用
<!-- 配置事務的通知 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">

</tx:advice>

3. 配置AOP中的通用切入點(需要增強的類)表達式

expression中的表達式寫法參考上篇博客,此處僅為舉例

<!-- 配置AOP -->
<aop:config>
? ? <!-- 配置切入點表達式 -->
? ? <aop:pointcut id="pt1" expression="execution(* *…*.*(…))"/>
</aop:config>

4. 建立事務通知和切入點表達式的對應關系

<!-- 配置AOP -->
<aop:config>
? ? <!-- 配置切入點表達式 -->
? ? <aop:pointcut id="pt1" expression="execution(* com.*.*(..))"/>
? ? <!-- 建立切入點表達式和事務通知的對應關系 -->
? ? <aop:advisor advice-ref="txAdvice" pointcut-ref="pt1"></aop:advisor>
</aop:config>

5. 配置事務的屬性

在事務的通知<tx:advice>標簽內(nèi)部

事務的屬性:

method:指定切入類的某個成員方法,可使用通配符。通配度越高則優(yōu)先級越低。
isolation:用于指定事務的隔離級別。默認值是DEFAULT,表示使用數(shù)據(jù)庫的默認隔離級別。
propagation:用于指定事務的傳播行為。默認是REQUIRED。表示一定有事務,增刪改的選擇。查詢方法可以選擇SUPPORTS。
read-only:用于指定事務是否只讀。只有查詢方案才能設置為true。默認值是false,表示讀寫。
timeout:用于指定事務的超時時間。默認值是-1,表示永不超時。
rollback-for:用于指定一個異常,當產(chǎn)生該異常時,事務回滾,當產(chǎn)生其他異常時,事務不回滾。沒有默認值,表示任何異常都回滾。
no-rollback-for:用于指定一個異常,當產(chǎn)生該異常時,事務不回滾,當產(chǎn)生其他異常時,事務回滾。沒有默認值,表示任何異常都回滾。

<!-- 配置事務的通知 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
? ? <!-- 配置事務的屬性 -->
? ? <tx:attributes>
? ? ? ? <!-- 優(yōu)先級低 -->
? ? ? ? <tx:method name="*" propagation="REQUIRED" read-only="false"/>
? ? ? ? <!-- 優(yōu)先級高 -->
? ? ? ? <tx:method name="find*" propagation="SUPPORTS" read-only="true"/>
? ? </tx:attributes>
</tx:advice>

總的代碼:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
? ? ? ?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
? ? ? ?xmlns:aop="http://www.springframework.org/schema/aop"
? ? ? ?xmlns:tx="http://www.springframework.org/schema/tx"
? ? ? ?xsi:schemaLocation="
? ? ? ? http://www.springframework.org/schema/beans
? ? ? ? https://www.springframework.org/schema/beans/spring-beans.xsd
? ? ? ? http://www.springframework.org/schema/tx
? ? ? ? https://www.springframework.org/schema/tx/spring-tx.xsd
? ? ? ? http://www.springframework.org/schema/aop
? ? ? ? https://www.springframework.org/schema/aop/spring-aop.xsd">


? ? <!-- 配置數(shù)據(jù)源 -->
? ? <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
? ? ? ? <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
? ? ? ? <property name="url" value="..."></property>
? ? ? ? <property name="username" value="root"></property>
? ? ? ? <property name="password" value="123456"></property>
? ? </bean>

? ? <!-- 配置事務管理器 -->
? ? <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
? ? ? ? <property name="dataSource" ref="dataSource"></property>
? ? </bean>

? ? <!-- 配置事務的通知 -->
? ? <tx:advice id="txAdvice" transaction-manager="transactionManager">
? ? ? ? <!-- 配置事務的屬性 -->
? ? ? ? <tx:attributes>
? ? ? ? ? ? <tx:method name="*" propagation="REQUIRED"/>
? ? ? ? </tx:attributes>
? ? </tx:advice>

? ? <!-- 配置AOP -->
? ? <aop:config>
? ? ? ? <!-- 配置切入點表達式 -->
? ? ? ? <aop:pointcut id="pt1" expression="execution(* com.*.*(..))"/>
? ? ? ? <!-- 建立切入點表達式和事務通知的對應關系 -->
? ? ? ? <aop:advisor advice-ref="txAdvice" pointcut-ref="pt1"></aop:advisor>
? ? </aop:config>


</beans>

這樣操作完后切入點中配置好的方法即可受到事務控制器的控制。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • java awt實現(xiàn)計算器功能

    java awt實現(xiàn)計算器功能

    這篇文章主要為大家詳細介紹了java awt實現(xiàn)計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Java 順序表專題解讀

    Java 順序表專題解讀

    順序表,全名順序存儲結(jié)構(gòu),是線性表的一種。線性表用于存儲邏輯關系為“一對一”的數(shù)據(jù),順序表自然也不例外,不僅如此,順序表對數(shù)據(jù)物理存儲結(jié)構(gòu)也有要求。順序表存儲數(shù)據(jù)時,會提前申請一整塊足夠大小的物理空間,然后將數(shù)據(jù)依次存儲起來,存儲時數(shù)據(jù)元素間不留縫隙
    2021-11-11
  • Spring-boot原理及spring-boot-starter實例和代碼

    Spring-boot原理及spring-boot-starter實例和代碼

    spring-boot的starter是一個通過maven完成自包含并通過annotation配置使得可被spring上下文發(fā)現(xiàn)并實例化的一個可插拔的組件或服務。這篇文章主要介紹了Spring-boot原理及spring-boot-starter實例和代碼 ,需要的朋友可以參考下
    2019-06-06
  • Java跳躍游戲?qū)嵗骖}解決思路詳解

    Java跳躍游戲?qū)嵗骖}解決思路詳解

    這篇文章主要介紹了Java跳躍游戲,總的來說這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來一種解題優(yōu)化的思路
    2022-10-10
  • IDEA修改java文件后 不用重啟Tomcat服務便可實現(xiàn)自動更新

    IDEA修改java文件后 不用重啟Tomcat服務便可實現(xiàn)自動更新

    這篇文章主要介紹了IDEA修改java文件后 不用重啟Tomcat服務便可實現(xiàn)自動更新,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 詳解如何使用IntelliJ IDEA新建一個Servlet項目

    詳解如何使用IntelliJ IDEA新建一個Servlet項目

    這篇文章主要介紹了詳解如何使用IntelliJ IDEA新建一個Servlet項目,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 基于SpringBoot和Vue寫一個2048小游戲

    基于SpringBoot和Vue寫一個2048小游戲

    創(chuàng)建一個基于 Java Spring Boot 后端和 Vue 前端的 2048 游戲,可以按照以下步驟進行,這個項目將包括后端(用來處理游戲邏輯)和前端(用來顯示游戲界面和與用戶交互),感興趣的小伙伴可以參考本文自己動手嘗試一下
    2024-08-08
  • java實現(xiàn)切圖并且判斷圖片是不是純色/彩色圖片

    java實現(xiàn)切圖并且判斷圖片是不是純色/彩色圖片

    本篇文章主要介紹了java實現(xiàn)切圖并且判斷圖片是否是純色/彩色圖片,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • spring 自動注入AutowiredAnnotationBeanPostProcessor源碼解析

    spring 自動注入AutowiredAnnotationBeanPostProcessor源碼解析

    這篇文章主要介紹了spring自動注入AutowiredAnnotationBeanPostProcessor源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • maven依賴沖突加載順序與解決

    maven依賴沖突加載順序與解決

    這篇文章主要介紹了項目中同時引用了相同依賴的不同版本,也就是沖突,maven?是如何選擇的,了解了有助于解決項目中的依賴問題,需要的朋友可以參考下
    2024-01-01

最新評論

郓城县| 清涧县| 隆化县| 丹寨县| 灌南县| 马尔康县| 封丘县| 体育| 怀远县| 云阳县| 宝山区| 泰顺县| 阳新县| 柘城县| 平原县| 南通市| 盱眙县| 襄垣县| 东丰县| 龙江县| 莲花县| 临高县| 普格县| 渝北区| 秦安县| 呼图壁县| 孝义市| 巴彦淖尔市| 上虞市| 界首市| 寿阳县| 永登县| 镇巴县| 祁东县| 望奎县| 西宁市| 渑池县| 庆城县| 子长县| 雅江县| 泗阳县|