北大青鳥spring入門課程TP4

北大青鳥spring入門課程TP4

ID:40654600

大小:1.89 MB

頁數(shù):24頁

時(shí)間:2019-08-05

北大青鳥spring入門課程TP4_第1頁
北大青鳥spring入門課程TP4_第2頁
北大青鳥spring入門課程TP4_第3頁
北大青鳥spring入門課程TP4_第4頁
北大青鳥spring入門課程TP4_第5頁
資源描述:

《北大青鳥spring入門課程TP4》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第四章SpringAOP的應(yīng)用回顧AOP的目的即在正常的業(yè)務(wù)操作之外增加的附加操作通過切入點(diǎn)(pointcut)指名進(jìn)行哪些切面(aspect)操作ProxyFactoryBeaninterceptorNamestargetNameproxyInterfaces攔截器(Interceptor),通知(Advice),和切面的不同(Aspect)2AOP的應(yīng)用事務(wù)切面日志切面其它附加操作切面3事務(wù)切面在介紹事務(wù)切面之前,回顧網(wǎng)上銀行的項(xiàng)目,并使用SpringIOC注入業(yè)務(wù)實(shí)現(xiàn)類所需的sessionFactory實(shí)現(xiàn)步驟和問題思考:實(shí)現(xiàn)業(yè)務(wù)接口和業(yè)務(wù)實(shí)現(xiàn)類(AccountSer

2、vice、LogService)sessionFactory如何注入的,應(yīng)該注入給誰?事務(wù)由誰來管理?4優(yōu)化現(xiàn)在項(xiàng)目經(jīng)理提出需求,希望改進(jìn)代碼的結(jié)構(gòu),達(dá)到如下目標(biāo):transfer方法(或其它業(yè)務(wù)方法)在執(zhí)行時(shí),事務(wù)自動(dòng)開始在正確完成后,事務(wù)提交,并且關(guān)閉hibernatesession在出現(xiàn)RuntimeException(或其子類)異常時(shí),事務(wù)回滾,并關(guān)閉hibernatesession其他異常,仍執(zhí)行提交——關(guān)閉的操作5Spring的解決方案方案A:使用事務(wù)攔截器并代理業(yè)務(wù)實(shí)現(xiàn)類方案B:使用事務(wù)advice和aspect切面來實(shí)現(xiàn)事務(wù)攔截6方案A第一步,改寫Accou

3、ntService業(yè)務(wù)實(shí)現(xiàn)類第二步,定義ProxyFactoryBean以返回AccountService代理對象proxyInterfacestargetNameinterceptorNames–這里添加事務(wù)攔截器7事務(wù)攔截器第三步定義事務(wù)攔截器8

4、nsfer">PROPAGATION_REQUIREDPROPAGATION_REQUIRES_NEW事務(wù)屬性以及事務(wù)管理器ShowTime修改log4j.properties,以便觀察Spring執(zhí)行過程log4j.logger.org.springframework.aop=debuglog4j.logger.org.springframewo

5、rk.transaction=debuglog4j.logger.org.springframework.orm.hibernate3=debug9事務(wù)管理器Spring由于需要為多種數(shù)據(jù)層的實(shí)現(xiàn)提供集成支持,針對不同的情況,定義了各種事務(wù)管理器,一定要選擇正確的事務(wù)管理器比如:DataSourceTransactionManager對應(yīng)JDBC事務(wù)HibernateTransactionManager對應(yīng)Hibernate提供的事務(wù)JtaTransactionManager對應(yīng)JTA事務(wù)大多數(shù)事務(wù)管理器都需要設(shè)置dataSource(數(shù)據(jù)源)屬性,對于HibernateT

6、ransactionManager可以只設(shè)置sessionFactory屬性10事務(wù)屬性常見的事務(wù)屬性有:事務(wù)的傳播行為事務(wù)的隔離級別事務(wù)是否只讀——針對只讀事務(wù),Spring在某些情況下會(huì)提供優(yōu)化11事務(wù)的傳播行為以下的定義可以在TransactionDefinition中找到PROPAGATION_REQUIREDPROPAGATION_SUPPORTSPROPAGATION_MANDATORYPROPAGATION_REQUIRES_NEWPROPAGATION_NOT_SUPPORTEDPROPAGATION_NEVER12事務(wù)的傳播行為PROPAGATION_RE

7、QUIRED——表示如果沒有事務(wù),則開始新的事務(wù),事務(wù)已經(jīng)存在,則加入當(dāng)前事務(wù)PROPAGATION_SUPPORTS——表示如果事務(wù)已經(jīng)存在,則加入當(dāng)前事務(wù),如果沒有事務(wù),不會(huì)開始新事務(wù)PROPAGATION_MANDATORY——表示必須有事務(wù)存在,并加入當(dāng)前事務(wù),否則拋出異常PROPAGATION_REQUIRES_NEW——表示每次都開始一個(gè)全新事務(wù)PROPAGATION_NOT_SUPPORTED——表示不會(huì)開始或加入事務(wù)PROPAGATION_NEVER——表示不會(huì)開始或加入事務(wù),如果事務(wù)已存在,拋出異

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。