Spring實現(xiàn)AOP的四種方式_第1頁
Spring實現(xiàn)AOP的四種方式_第2頁
Spring實現(xiàn)AOP的四種方式_第3頁
Spring實現(xiàn)AOP的四種方式_第4頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

.Spring 實現(xiàn)AOP的四種式一、 準備知識1.通知(Advice):通知定義了切面是什么以及時使用。描述了切面要完成的工作和時需要執(zhí)行這個工作。2.連接點(Joinpoint):程序能夠應(yīng)用通知的一個“時機”,這些“時機”就是連接點,例如法被調(diào)用時、異常被拋出時等等。3.切入點(Pointcut)通知定義了切面要發(fā)生的“故事”和時間,那么切入點就定義了“故事”發(fā)生的地點,例如某個類或法的名稱,Spring中允我們便的用正則表達式來指定4.切面(Aspect)通知和切入點共同組成了切面:時間、地點和要發(fā)生的 “故事”5.引入(Introduction)引入允我們向現(xiàn)有的類添加新的法和屬性 (Spring 提供了一個法注入的功能)6.目標(Target)即被通知的對象,如果沒有 AOP,那么它的邏輯將要交叉別的事務(wù)邏輯,有了 AOP之后它可以只關(guān)注自己要做的事( AOP讓他做愛做的事)7.代理(proxy)應(yīng)用通知的對象,詳細容參見設(shè)計模式里面的代理模式Word專業(yè)資料.8.織入(Weaving)把切面應(yīng)用到目標對象來創(chuàng)建新的代理對象的過程,織入一般發(fā)生在如下幾個時機 :編譯時:當(dāng)一個類文件被編譯時進行織入,這需要特殊的編譯器才可以做的到,例如AspectJ 的織入編譯器類加載時:使用特殊的ClassLoader在目標類被加載到程序之前增強類的字節(jié)代碼運行時:切面在運行的某個時刻被織入,SpringAOP就是以這種式織入切面的,原理應(yīng)該是使用了JDK的動態(tài)代理技術(shù)二、 四種式1.經(jīng)典的基于代理的 AOP2.@AspectJ 注解驅(qū)動的切面3.純POJO切面4.注入式AspectJ 切面要用到的jar包Word專業(yè)資料.經(jīng)典的基于代理的AOPSpring支持五種類型的通知:Before(前返回后拋出后圍引入步驟:1.創(chuàng)建通知:實現(xiàn)這幾個接口,把其中的法實現(xiàn)了2.定義切點和通知者:在Spring配制文件中配置這些信息3.使用ProxyFactoryBean來生成代理具體做法:創(chuàng)建通知:Word專業(yè)資料.Word專業(yè)資料.在spring 配置文件里添加:定義切點和通知者:定義切點的常用的兩種式: 1)使用正則表達式 2)使用AspectJ 表達式這里用正則表達式在spring 配置文件里添加:Word專業(yè)資料.切入點和通知都配置完成,接下來該調(diào)用 ProxyFactoryBean 產(chǎn)生代理對象在spring 配置文件里添加:使用ProxyFactoryBean來生成代理ProxyFactoryBean 是一個代理,我們可以把它轉(zhuǎn)換為 proxyInterfaces 中指定的實現(xiàn)該interface 的代理對象Word專業(yè)資料.運行結(jié)果:這個配置有點煩?測試代碼:運行的效果和上面的是一樣的! !!2.@AspectJ 注解驅(qū)動的切面用@Aspect 的注解來標識切面 ,注意不要把它漏了, 否則Spring 創(chuàng)建代理的時候會找不到它,@Pointcut 注解指定了切點, @Before 和@AfterReturning 指定了運行時的通知,Word專業(yè)資料.注意的是要在注解中傳入切點的名稱Spring 配置文件:Word專業(yè)資料.測試代碼:3.純POJO切面前面我們用到了 <aop:aspectj-autoproxy/> 標簽,Spring 在aop的命名空間里面還提供了其他的配置元素 :<aop:advisor> 定義一個AOP通知者<aop:after> 后通知<aop:after-returning> 返回后通知<aop:after-throwing> 拋出后通知<aop:around> 圍通知<aop:aspect> 定義一個切面<aop:before> 前通知<aop:config> 頂級配置元素,類似于 <beans> 這種東西<aop:pointcut> 定義一個切點Word專業(yè)資料.主要的類的代碼變化不大:Spring 的配置文件:Word專

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論