下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年四川省安全员b证题库及答案解析
- 2025至2030全球及中国物联网在航空航天和国防中的应用行业发展趋势分析与未来投资战略咨询研究报告
- 2025年企业信托合同的范文
- 投信投顾从业资格考试及答案解析
- 金融从业水平考试及答案解析
- 2025-2030绿色建筑产业政策导向及发展机遇研究
- 2025-2030绿氢制备电解槽技术降本路径与可再生能源耦合发展研究报告
- 2025-2030经济型酒店布草洗涤外包市场价格形成机制与博弈分析
- 共青团团课主题班会课件PPT模板PPT
- 氧化层击穿原理
- ECN流程图完整版
- 富宁县方鑫黄金矿业有限责任公司毛姐山金矿采矿权出让收益评估报告
- GB/T 13314-1991锻钢冷轧工作辊通用技术条件
- 初三满分的作文600字5篇
- 呼吸系统术前评估流程课件
- 境外安全风险管理培训课件
- 感官第一节感受器及一般生理特性
- 文言实词推断方法公开课市公开课一等奖省名师优质课赛课一等奖课件
- DB21T 3354-2020 辽宁省绿色建筑设计标准
评论
0/150
提交评论