



版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國進出口代理合同
- 商品混凝土外加劑購銷合同
- 養(yǎng)殖場轉(zhuǎn)讓合同協(xié)議書
- 大慶醫(yī)學(xué)高等專科學(xué)?!峨娐防碚揃》2023-2024學(xué)年第二學(xué)期期末試卷
- 9《心中的“110”》 (教學(xué)設(shè)計)-部編版道德與法治三年級上冊
- 泉州工程職業(yè)技術(shù)學(xué)院《雙碳概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 必修3 第三單元 全面依法治國-高中政治單元教學(xué)設(shè)計
- 江蘇衛(wèi)生健康職業(yè)學(xué)院《跆拳道教學(xué)與訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 第14課《詩詞三首-水調(diào)歌頭》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版語文九年級上冊
- 湖北第二師范學(xué)院《產(chǎn)品設(shè)計速寫》2023-2024學(xué)年第二學(xué)期期末試卷
- 制程工程師年終總結(jié)匯報
- 《換熱器及換熱原理》課件
- UPVC排水管技術(shù)標準
- 高中生安全教育主題班會課件
- 住戶調(diào)查輔助調(diào)查員培訓(xùn)教學(xué)課件
- 數(shù)字營銷基礎(chǔ)PPT完整全套教學(xué)課件
- 園林植物環(huán)境PPT完整全套教學(xué)課件
- 跨境電商B2B數(shù)據(jù)運營高職PPT全套完整教學(xué)課件
- 2023中職27 嬰幼兒保育 賽題 模塊三 嬰幼兒早期學(xué)習(xí)支持(賽項賽題)
- 教師師德和專業(yè)發(fā)展課件
- 服務(wù)器巡檢報告模版
評論
0/150
提交評論