freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

通過代碼實例跟我學(xué)面向方面編程從入門到精通——在項目中實現(xiàn)springaop的around類型通知advice的應(yīng)用實例(已修改)

2025-09-22 09:56 本頁面
 

【正文】 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 1/21 頁 在 項目 中實現(xiàn) Spring AOP的 Around類型 通知( Advice) 的應(yīng)用實例 編程實現(xiàn)的技術(shù) 要點 通常,實現(xiàn) Around 類型的策略是使用 Interceptor(攔截器)作為 Around 類型的Advice也就是要實現(xiàn) MethodInterceptor 接口。 由于原始的方法是被開發(fā)者在 攔截器中進行調(diào)用,從而可以通過 攔截器 來控制原始類中的方法的真正執(zhí)行過程或者對其附加功能。 在項目中添加與 Spring AOP 有關(guān)的系統(tǒng)庫 ( 1)添加 Spring 系統(tǒng)中的 包文件 ( 2)再添加如下的系統(tǒng)庫 (在 系 統(tǒng) 中 ) , 并 且 是 后 面 的 接口所在的系統(tǒng)庫。 ( 也 在 系統(tǒng)中) ,用于沒有實現(xiàn)接口的類代理。 AOP 聯(lián)盟規(guī)范了一套用于規(guī)范 AOP 實現(xiàn)的底層 API,通過這些統(tǒng)一的底層 API,可以使得各個 AOP 實現(xiàn)及工具產(chǎn)品之間實現(xiàn)相互移植。這些 API 主 要以標準接口的形式提供,是AOP 編程思想所要解決的橫切交叉關(guān)注點問題各部件的最高抽象。 Spring 的 AOP 框架中也直接以這些 API 為基礎(chǔ)所構(gòu)建。 由于 Spring 版的 AOP 同樣 實現(xiàn)了 AOP 聯(lián)盟約定的接口,而 在 版的 Spring 框楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 2/21 頁 架 系統(tǒng)庫中 并 不 提 供 該 接 口 的 源 代 碼 , 可以在 官 方 網(wǎng) 站 : 下載系統(tǒng)庫。 應(yīng)用 可視化方式添加 AOP 系統(tǒng)庫 使用 Interceptor(攔截器) ( 1)使 用 Interceptor 我們希望在方法執(zhí)行前、后進行記錄的動作,在 AOP 中這需要 Around 類型的 Advice。通常,實現(xiàn) Around 類型的策略是使用 Interceptor。 ( 2) Interceptor 的具體應(yīng)用 應(yīng)用 Interceptor 的一個例子是 Servlet 中的 Filter 機制,在 Filter 機制下,當請求來臨時,會被 Filter 先攔截并進行處理,之后傳給下一個 Filter,可能最后才是真正處理請求的 Servlet。 實現(xiàn) AOP 時所使用的 Interceptor 策略與 Filter 類似,所不同的是 Filter 被綁定于Servlet API,并且只適用于 Web 應(yīng)用。 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 3/21 頁 ( 3) Interceptor 可以是一個鏈 我們可以將一連串的 Interceptor 設(shè)計為一個鏈式結(jié)構(gòu),在 Spring 中,在真正執(zhí)行某個方法前,會先插入 Interceptor,每個 Interceptor 會執(zhí)行自己的處理,然后再執(zhí)行proceed,這將執(zhí)行流程轉(zhuǎn)給下一個 Interceptor,如果沒有下一個 Interceptor 了,就執(zhí)行真正要調(diào)用的方法,方法執(zhí)行過后,再一層一層地返回 Interceptor 鏈式結(jié)構(gòu),最后離開鏈式結(jié)構(gòu)。 ( 4) Spring 在實現(xiàn) Interceptor 時,是實現(xiàn) 接口 在本 Project 中添加一個 LogInterceptor 類(實現(xiàn) Log 的記錄) ( 1)類名稱為 LogInterceptor,包名稱為 ( 2)編程 LogInterceptor 程序 類 要在 Spring 中用作 around 通知, AroundAdvice 類必須實現(xiàn) MethodInterceptor 接口楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 4/21 頁 并重寫 它的 invoke(..)方法 每當截獲到 主功能類中的特定的 方法 被調(diào)用時, 重寫 的invoke(..)方法就會被 自動 調(diào)用。 package 。 import 。 import 。 import 。 import 。 public class LogInterceptor implements MethodInterceptor { private Logger logger = (().getName())。 public LogInterceptor() { } public Object invoke(MethodInvocation methodInvocation) throws Throwable { boolean methodReturnBoolean=false。 Object returnResult =null。 String methodName=().getName()。 (, methodName+ 功 能 方 法 開 始 執(zhí) 行 ... + ())。 try { (500)。 } catch (InterruptedException e) { ()。 } try{ returnResult = ()。 methodReturnBoolean=((Boolean)returnResult).booleanValue()。 try { (500)。 } catch (InterruptedException e) { ()。 } 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 5/21 頁 } finally{ if(methodReturnBoolean){ (, methodName+功能方法執(zhí)行結(jié)束,并且已經(jīng)成功地執(zhí)行了! + () + \n)。 } else{ (, methodName+方法執(zhí)行結(jié)束,并且執(zhí)行失敗! + () + \n)。 } } return returnResult。 //一定要將目標方法的返回結(jié)果繼續(xù)向上返回! } } 對比應(yīng)用 Spring AOP 中 的攔截器程序和 Java 中的動態(tài)代理程序之間的差別, 代碼簡單 ,而且不需要在代碼中人為指定 目標類和動態(tài)創(chuàng)建代理類的對象 。 ( 3)所應(yīng)該要 注意 的問題 其中的 invoke()中的 MethodInvocation 參數(shù)包括了下一個 Interceptor 的信息、被執(zhí)行的方法、以及方法所需的參數(shù),其返回值 Ob
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1