


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Spring事务配置的五种方式Spring配置文件中关于事务配置总是由三个组成局部,分别是 DataSource、 TransactionManager和代理机制这三局部,无论哪种配置方式,一般变化的只 是代理机制这局部。DataSource、TransactionManager这两局部只是会根据数据访问方式有 所变化,比方使用Hibernate进展数据访问 时,DataSource实际为 SessionFactory ,TransactionManager 的实现为 Hiber nateTra nsact ionMan ager 。具体如以下图:bct:a5aurceDflfaS olfcc
2、T ra n$ac ti onMcncctgrTrans ocr to/i Wo nagfl r-H ibt rnai eTnsoefienMarwger如个on ff卜代歼Bean和代膛新/l Ban兀卒一今狀J?軀賞J pa Tran r T i 口 可弓上 r*代理机剳仃1TH 齐呪冒r.根据代理机制的不同,总结了五种 Spring事务的配置方式,配置文件如下: 第一种方式:每个Bean都有一个代理<?xml versio n="1.0" en codi ng="UTF-8"?><bea ns xml ns=".spri
3、 /schema/bea ns"xml ns:xsi="./2001/XMLSchema-i nsta nee"xml ns:c on text=".spri /schema/co ntext"xml ns:aop=".spri /schema/aop"xsi:schemaLocatio n=".spri /schema/bea ns.spri /sche
4、ma/bea.spri /schema/co ntext.spri /schema/co.spri /schema/aop .spri /schem a/aop/spri ng-aop-2.5.xsd"><bea n id="sessi onF actory"class="org.spri ngframework.orm.hiber nate3.LocalSessi onF actoryBea n"><
5、property n ame="c on figLocatio n"value="classpath:hibernate.cfg.xml" /><property n ame="co nfigurati on Class" value="org.hibernate.cfg.A nn otatio nCon figuratio n" /></bea n><!- 定义事务管理器声明式的事务-><bea n id="tra nsacti onMan ager&qu
6、ot;class="org.spri ngframework.orm.hibernate3.HibernateTra nsactio nMan ager "><property n ame="sessio nF actory" ref="sessi onF actory" /></bea n><!- 配置 DAO -><bea n id="userDaoTarget" class=".bluesky.spri ng.dao.UserDaolmpl"
7、> <property n ame="sessio nF actory" ref="sessi onF actory" /></bea n><bea n id="userDao" class="org.spri ngframework.tra nsactio n.in terceptor.Tra nsactio nProxyFa ctoryBea n"><!-配置事务管理器-><property n ame="tra nsact ionMan a
8、ger"ref="tra nsactio nMan ager" /><property n ame="target" ref="userDaoTarget" /><property n ame="proxyI nterfaces"value=".bluesky.spri ng.dao.Ge neratorDao" /><!- 配置事务属性-><property n ame="tra nsactio nAttributes&quo
9、t;><props><prop key="*">PROPAGATION_REQUIRED</prop></props></property>v/bea n>v/bea ns>第二种方式:所有Bean共享一个代理基类<?xml versio n="1.0" en codi ng="UTF-8"?><bea ns xml ns=".spri /schema/bea ns"xml ns:xsi=&
10、quot;./2001/XMLSchema-i nsta nee"xml ns:c on text=".spri /schema/co ntext"xml ns:aop=".spri /schema/aop"xsi:schemaLocatio n=".spri /schema/bea ns.spri /schema/bea.spri /schema/co ntext.spri
11、 /schema/co.spri /schema/aop .spri /schem a/aop/spri ng-aop-2.5.xsd"><bea n id="sessi onF actory"class="org.spri ngframework.orm.hiber nate3.LocalSessi onF actoryBea n"> vproperty n ame="c on figLocatio n"value=
12、"classpath:hibernate.cfg.xml" />vproperty n ame="co nfigurati on Class" value="org.hibernate.cfg.A nn otatio nCon figuratio n" /> v/bea n><!-定义事务管理器声明式的事务-><bea n id="tra nsacti onMan ager"class="org.spri ngframework.orm.hibernate3.Hiber
13、nateTra nsactio nMan ager ">vproperty n ame="sessio nF actory" ref="sessi onF actory" /> v/bea n>vbean id="transaction Base"class="org.spri ngframework.tra nsactio n.in terceptor.Tra nsactio nProxyFa ctoryBea n"lazy-init="true" abstract
14、="true">v!-配置事务管理器->vproperty n ame="tra nsactio nMan ager" ref="tra nsactio nMan ager"/>v!-配置事务属性->vproperty n ame="tra nsactio nAttributes">vprops><prop key="*">PROPAGATION_REQUIRED</prop></props></property>
15、;</bea n><!- 配置 DAO -><bea n id="userDaoTarget" class=".bluesky.spri ng.dao.UserDaolmpl"> <property n ame="sessio nF actory" ref="sessi onF actory" /></bea n><bea n id="userDao" pare nt="tra nsactio nBase" &
16、gt;<property n ame="target" ref="userDaoTarget" /></bea n></bea ns>第三种方式:使用拦截器<?xml versio n="1.0" en codi ng="UTF-8"?><bea ns xml ns=".spri /schema/bea ns"xml ns:xsi="./2001/XMLSchema-i nsta nee&q
17、uot;xml ns:c on text=".spri /schema/co ntext"xml ns:aop=".spri /schema/aop" xsi:schemaLocatio n=".spri /schema/bea ns.spri /schema/bea.spri /schema/co ntext.spri /schema/co.spri ngframe
18、/schema/aop .spri /schem a/aop/spri ng-aop-2.5.xsd"><bea n id="sessi onF actory"class="org.spri ngframework.orm.hiber nate3.LocalSessi onF actoryBea n"><property n ame="c on figLocatio n"value="classpath:hibernate.cfg.xml&quo
19、t; /><property n ame="co nfigurati on Class" value="org.hibernate.cfg.A nn otatio nCon figuratio n" /></bea n><!-定义事务管理器声明式的事务-><bea n id="tra nsacti onMan ager"class="org.spri ngframework.orm.hibernate3.HibernateTra nsactio nMan ager "
20、>vproperty name="sessionFactory" ref="sessionFactory" />v/bea n><bean id="transactionInterceptor"class="org.spri ngframework.tra nsactio n.i nterceptor.Tra nsactio nIn terce ptor">vproperty n ame="tra nsactio nMan ager" ref="tra n
21、sactio nMan ager"/><!-配置事务属性->vproperty n ame="tra nsactio nAttributes"><props>vprop key="*">PROPAGATION_REQUIRED</prop></props></property>v/bea n><bea nclass="org.spri ngframework.aop.framework.autoproxy.Bea nN ameAutoProxyC
22、 reator">vproperty n ame="bea nN ames"><list>vvalue>*Daov/value>v/list>v/property>vproperty n ame="i nterceptorNames">vlist>vvalue>tra nsact ionln terceptorv/value>v/list>v/property>v/bea n>v!- 配置 DAO ->vbean id="userDao&q
23、uot; class=".bluesky.spring.dao.UserDaolmpl">vproperty n ame="sessio nF actory" ref="sessi onF actory" />v/bea n>v/bea ns>第四种方式:使用tx标签配置的拦截器 v?xml versio n="1.0" en codi ng="UTF-8"?><bea ns xml ns=".spri /schema/
24、bea ns"xml ns:xsi="./2001/XMLSchema-i nsta nee"xml ns:c on text=".spri /schema/co ntext"xml ns:aop=".spri /schema/aop"xml ns:tx=".spri /schema/tx"xsi:schemaLocatio n=".spri /schema/bea
25、 ns.spri /schema/bea.spri /schema/co ntext.spri /schema/co.spri /schema/aop .spri /schem.spri /schema/tx .spri /schema/tx/spri ng-tx-2.5.xsd"><context:annotation-config /><con te
26、xt:comp onen t-sca n base-package=".bluesky" /><bea n id="sessi onF actory"class="org.spri ngframework.orm.hiber nate3.LocalSessi onF actoryBea n"><property n ame="c on figLocatio n" value="classpath:hibernate.cfg.xml" /><property n
27、 ame="co nfigurati on Class" value="org.hibernate.cfg.A nn otatio nCon figuratio n" /></bea n><!-定义事务管理器声明式的事务-><bea n id="tra nsacti onMan ager"class="org.spri ngframework.orm.hibernate3.HibernateTra nsactio nMan ager"><property n ame=
28、"sessio nF actory" ref="sessi onF actory" /></bea n><tx:advice id="txAdvice"tran sact ion-man ager="tra nsact ionMan ager"><tx:attributes><tx:method name="*" propagatio n="REQUIRED" /></tx:attributes></tx
29、:advice><aop:c on fig><aop:po in tcut id=" in terceptorPoi ntCuts"expressi on="executi on(* .bluesky.spri ng.dao.*.*(.)" /><aop:advisor advice-ref="txAdvice" poi ntcut-ref=" in terceptorPoi ntCuts" /> </aop:c on fig> v/bea ns>第五种方
30、式:全注解<?xml versio n="1.0" en codi ng="UTF-8"?><bea ns xml ns=".spri /schema/bea ns"xml ns:xsi="./2001/XMLSchema-i nsta nee"xml ns:c on text=".spri /schema/co ntext"xml ns:aop=".spri /sc
31、hema/aop"xml ns:tx=".spri /schema/tx"xsi:schemaLocatio n=".spri /schema/bea ns.spri /schema/bea.spri /schema/co ntext.spri /schema/co.spri /schema/aop .spri /schem.spri ngfram
32、/schema/tx .spri /schema /tx/spri ng-tx-2.5.xsd"><context:annotation-config /><con text:comp onen t-sca n base-package=".bluesky" /><tx:a nno tati on-drive n tran sactio n-ma nager="tra nsactio nMan ager"/><bea n id="sessi onF actory"class="org.spri ngframework.orm.hiber nate3.LocalSessi onF actoryBea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电影后期制作版权及衍生品开发独家授权合同
- 影视特效制作与影视特效设备销售合同
- 机动车辆年检服务合同
- 苗木生长监测合同
- 青少年艺术素养提升培训计划
- 人教版三年级上册数学暑假复习计划
- 2025-2030防脱发行业市场发展分析及投资前景研究报告
- 2025-2030金融仓储产业发展分析及发展趋势与投资前景预测报告
- 2025-2030血浆蛋白结合试验行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030环保涂料行业市场现状供需分析及投资评估规划分析研究报告
- 北京中考英语词汇表(1600词汇)
- (完整版)重大危险源清单及辨识表
- 超市消防监控系统设计
- 新工科的建设和发展思考ppt培训课件
- 封样管理规定
- 黄腐酸钾项目可行性研究报告-用于立项备案
- 管理人员责任追究制度
- 自动旋转门PLC控制
- 电影场记表(双机位)
- 毕设高密电法探测及数据处理解释
- 【课件】第2课如何鉴赏美术作品课件-高中美术人教版(2019)美术鉴赏
评论
0/150
提交评论