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

基于XML的Spring聲明事務(wù)控制

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

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

1. 配置事務(wù)管理器

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

2. 配置事務(wù)的通知

此時我們需導(dǎo)入事務(wù)的約束 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>標(biāo)簽配置事務(wù)通知

屬性:

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

</tx:advice>

3. 配置AOP中的通用切入點(diǎn)(需要增強(qiáng)的類)表達(dá)式

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

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

4. 建立事務(wù)通知和切入點(diǎn)表達(dá)式的對應(yīng)關(guān)系

<!-- 配置AOP -->
<aop:config>
? ? <!-- 配置切入點(diǎn)表達(dá)式 -->
? ? <aop:pointcut id="pt1" expression="execution(* com.*.*(..))"/>
? ? <!-- 建立切入點(diǎn)表達(dá)式和事務(wù)通知的對應(yīng)關(guān)系 -->
? ? <aop:advisor advice-ref="txAdvice" pointcut-ref="pt1"></aop:advisor>
</aop:config>

5. 配置事務(wù)的屬性

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

事務(wù)的屬性:

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

<!-- 配置事務(wù)的通知 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
? ? <!-- 配置事務(wù)的屬性 -->
? ? <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>

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

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

? ? <!-- 配置AOP -->
? ? <aop:config>
? ? ? ? <!-- 配置切入點(diǎn)表達(dá)式 -->
? ? ? ? <aop:pointcut id="pt1" expression="execution(* com.*.*(..))"/>
? ? ? ? <!-- 建立切入點(diǎn)表達(dá)式和事務(wù)通知的對應(yīng)關(guān)系 -->
? ? ? ? <aop:advisor advice-ref="txAdvice" pointcut-ref="pt1"></aop:advisor>
? ? </aop:config>


</beans>

這樣操作完后切入點(diǎn)中配置好的方法即可受到事務(wù)控制器的控制。

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

相關(guān)文章

  • java awt實(shí)現(xiàn)計(jì)算器功能

    java awt實(shí)現(xiàn)計(jì)算器功能

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

    Java 順序表專題解讀

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

    Spring-boot原理及spring-boot-starter實(shí)例和代碼

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

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

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

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

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

    詳解如何使用IntelliJ IDEA新建一個Servlet項(xiàng)目

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

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

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

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

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

    spring 自動注入AutowiredAnnotationBeanPostProcessor源碼解析

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

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

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

最新評論

黔西县| 锦州市| 独山县| 龙南县| 班玛县| 昂仁县| 灵寿县| 陵水| 兰考县| 独山县| 正宁县| 晋州市| 岫岩| 墨江| 保定市| 陇川县| 尼木县| 普格县| 栖霞市| 如皋市| 岢岚县| 南华县| 大关县| 浮梁县| 安泽县| 腾冲县| 鄄城县| 铁力市| 张家港市| 襄汾县| 望谟县| 五原县| 湘阴县| 曲阳县| 莱州市| 和硕县| 寿光市| 镇坪县| 东台市| 邵东县| 若羌县|