Spring事務配置的五種方式_第1頁
Spring事務配置的五種方式_第2頁
Spring事務配置的五種方式_第3頁
免費預覽已結束,剩余4頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論