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

歡迎訪問 生活随笔!

生活随笔

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

javascript

Spring配置事务的五种方式

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

?

?Java事務的類型有三種:

JDBC事務、?可以將多個 SQL 語句結合到一個事務中。JDBC 事務的一個缺點是事務的范圍局限于一個數據庫連接。一個 JDBC 事務不能跨越多個數據庫

JTA(Java Transaction API)事務、事務可以跨越多個數據庫或多個DAO,使用也比較復雜。

容器事務。主要指的是J2EE應用服務器提供的事務管理,局限于EJB應用使用。

?

spring事務的配置方式編程式事務和聲明式事務,相信大家都知道是有5種,但我們經常使用的應該就是基于注解和tx標簽配置攔截器兩種方式了

?

?

1 2 3 4 5 6 7 8 9 10 ???<bean?id="sessionFactory" ?????????class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">??? ????????<property?name="configLocation"?value="classpath:hibernate.cfg.xml"?/>??? ????????<property?name="configurationClass"?value="org.hibernate.cfg.AnnotationConfiguration"?/>? ????</bean> <!-- 定義事務管理器(聲明式的事務) --> ??<bean?id="transactionManager" ??????class="org.springframework.orm.hibernate3.HibernateTransactionManager">? ??????<property?name="sessionFactory"?ref="sessionFactory"?/>? ??</bean>

ps:聲明式事務管理建立在AOP之上的。其本質是對方法前后進行攔截,然后在目標方法開始之前創建或者加入一個事務,在執行完目標方法之后根據執行情況提交或者回滾事務。

?

1、基于注解,DAO上需加上@Transactional注解

?

1 <tx:annotation-driven?transaction-manager="transactionManager"/>


2、使用tx標簽配置的攔截器

?

1 2 3 4 5 6 7 8 9 10 11 12 <tx:advice?id="txAdvice"?transaction-manager="transactionManager">? ????<tx:attributes>? ????????<tx:method?name="*"?propagation="REQUIRED"?/>? ????</tx:attributes>? </tx:advice>? <aop:config>? ????<aop:pointcut?id="interceptorPointCuts" ????????expression="execution(* com.bluesky.spring.dao.*.*(..))"?/>? ????<aop:advisor?advice-ref="txAdvice" ????????pointcut-ref="interceptorPointCuts"?/>????????? </aop:config>

3、使用攔截器

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <bean?id="transactionInterceptor" ???????class="org.springframework.transaction.interceptor.TransactionInterceptor">??? ???????<property?name="transactionManager"?ref="transactionManager"?/>??? ???????<!-- 配置事務屬性 --> ???????<property?name="transactionAttributes">??? ???????????<props>??? ???????????????<prop?key="*">PROPAGATION_REQUIRED</prop>??? ???????????</props>??? ???????</property>??? ???</bean>? ???<bean?class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">??? ???????<property?name="beanNames">??? ???????????<list>??? ???????????????<value>*Dao</value>? ???????????</list>??? ???????</property>??? ???????<property?name="interceptorNames">??? ???????????<list>??? ???????????????<value>transactionInterceptor</value>??? ???????????</list>??? ???????</property>??? ???</bean>

?

4、所有Bean共享一個代理基類

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <bean?id="transactionBase" ????????class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" ????????lazy-init="true"?abstract="true">??? ????<!-- 配置事務管理器 --> ????<property?name="transactionManager"?ref="transactionManager"?/>??? ????<!-- 配置事務屬性 --> ????<property?name="transactionAttributes">??? ????????<props>??? ????????????<prop?key="*">PROPAGATION_REQUIRED</prop>??? ????????</props>??? ????</property>??? </bean> ????<!-- 配置DAO --> ????<bean?id="userDaoTarget"?class="com.bluesky.spring.dao.UserDaoImpl">? ????????<property?name="sessionFactory"?ref="sessionFactory"?/>? ????</bean>? ????<bean?id="userDao"?parent="transactionBase"?>??? ????????<property?name="target"?ref="userDaoTarget"?/>???? ????</bean>

?

5、每個Bean都有一個代理

1 2 3 4 5 6 7 8 9 10 11 12 13 <bean?id="userDao" ????????class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">??? ???????????<!-- 配置事務管理器 --> ???????????<property?name="transactionManager"?ref="transactionManager"?/>?????? ????????<property?name="target"?ref="userDaoTarget"?/>??? ?????????<property?name="proxyInterfaces"?value="com.bluesky.spring.dao.GeneratorDao"?/>? ????????<!-- 配置事務屬性 --> ????????<property?name="transactionAttributes">??? ????????????<props>??? ????????????????<prop?key="*">PROPAGATION_REQUIRED</prop>? ????????????</props>??? ????????</property>??? ????</bean>

?

轉載于:https://www.cnblogs.com/shuchen007/p/9202758.html

總結

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

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

主站蜘蛛池模板: 亚洲国产二区 | 国产美女裸体无遮挡免费视频 | 在线观看福利片 | 亚洲视频综合网 | 欧美1区2区3区 | 在线va| 免费毛片一区二区三区久久久 | 亚洲jizzjizz日本少妇 | 中文字幕亚洲高清 | 在线理论视频 | 国产精品推荐 | 狠狠a| 国产亚洲无| 一级片在线 | 高h喷水荡肉少妇爽多p视频 | 欧美激情国产一区 | 日韩精品一区二区三区视频 | 全国男人天堂网 | 波多野结衣一区二 | 亚洲特黄特色 | 亚洲成人另类 | 黄色图片小说 | 欧美一区网站 | 欧美日韩另类视频 | 日本精品一区二区三区在线观看 | 男人插女人网站 | 国产乱妇乱子 | 精品国产视频一区二区 | 日韩视频福利 | 天天色天天爽 | 日本黄色一级视频 | 国产在线综合网 | missav | 免费高清av在线看 | 十八禁一区二区三区 | 福利影院在线 | 国产精品系列在线 | 成人伊人网站 | 东北熟女一区二区三区 | 亚洲无遮挡 | 亚洲精品鲁一鲁一区二区三区 | 国产日韩久久久 | 春宵av | 国产一级自拍视频 | 伊人三级| 女性喷水视频 | 在线免费观看 | 在线免费看mv的网站入口 | 成年免费在线观看 | 亚洲欲妇 | 韩国毛片一区二区 | 午夜国产一区 | 中字幕视频在线永久在线观看免费 | 人人射人人爱 | 日韩视频专区 | 九九九热精品 | 性欧美熟妇videofreesex | 国产丝袜一区二区三区 | 91精品在线观看入口 | 五月天狠狠操 | 姑娘第5集高清在线观看 | 牛夜精品久久久久久久99黑人 | 亚洲精品色 | 日韩电影在线观看一区 | 午夜激情毛片 | 播放男人添女人下边视频 | 少妇的性事hd | 五月婷久久 | 亚洲人成人无码网www国产 | 国产欧美视频一区二区 | 热精品 | 91麻豆国产视频 | 成人在线观看网 | 午夜影院在线观看视频 | 蜜桃久久一区二区三区 | 特级性生活片 | 亚洲性大片| 久久免费高清 | 黄色一毛片 | av在线不卡免费观看 | 欧美精品成人一区二区三区四区 | 免费看一级黄色大片 | 性欧美一级 | 日本www在线观看 | 天堂av√| 国产精品99精品 | 欧美性xxxxxx | 激情免费av | 欧美精品乱码久久久久久按摩 | 九九热在线免费观看 | 黄色大片在线免费观看 | 美女av在线免费观看 | 亚洲欧美日韩色 | 毛片毛片毛片毛片毛片 | 国产夫妻露脸 | 国产成人在线免费观看 | 高h调教冰块play男男双性文 | youjizzxxxxx | 青青草小视频 | 一区二区三区视频在线观看免费 |