


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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年梧州錫膏印刷設備項目可行性研究報告
- 紅細胞類診斷抗原相關行業投資規劃報告
- 中國母嬰食品行業市場研究分析及投資前景研判報告
- 內蒙古自治區赤峰市翁牛特旗烏丹第三中學2025年英語八下期中考試模擬試題含答案
- 新生兒呼吸暫停監測技術-洞察及研究
- 紡織品生命周期管理-第1篇-洞察及研究
- 自我效能感理論應用-洞察及研究
- 商鋪租賃意向書范本
- 醫院藥事管理相關知識課件
- 2022年二手車交易服務企業組織架構及部門職責
- 畢業論文指導記錄12篇
- 招標代理公司招標代理服務方案(技術標)
- 新能源汽車與傳統汽車的對比
- 中班健康課件《夏天少喝飲料》
- 2023年江西南昌軌道交通集團運營分公司招聘327人筆試參考題庫(共500題)答案詳解版
- 卒中防治中心建設情況匯報
- 酸感受離子通道的結構與功能
- 人教版四年級數學下冊期末試卷(附答案)
評論
0/150
提交評論