AOP(面向切面程式設計) 01

2022-09-11 09:45:09 字數 1139 閱讀 9077

官方解釋為:在軟體業,aop為aspect oriented programming的縮寫,意為:面向切面程式設計,通過預編譯方式和執行期動態**實現程式功能的統一維護的一種技術。aop是oop的延續,是軟體開發中的乙個熱點,也是spring框架中的乙個重要內容,是函式式程式設計的一種衍生范型。利用aop可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程式的可重用性,同時提高了開發的效率。

在軟體開發中,散布於應用中且多處出現的功能被稱為橫切關注點(cross-cutting concern)。aop所解決的問題就是將橫切關注點與業務邏輯**相分離。如下圖所示:

aspect(切面): aspect 宣告類似於 j**a 中的類宣告,在 aspect 中會包含著一些 pointcut 以及相應的 advice。

joint point(連線點):表示在程式中明確定義的點,典型的包括方法呼叫,對類成員的訪問以及異常處理程式塊的執行等等,它自身還可以巢狀其它 joint point。

pointcut(切點):表示一組 joint point,這些 joint point 或是通過邏輯關係組合起來,或是通過通配、正規表示式等方式集中起來,它定義了相應的 advice 將要發生的地方。

advice(增強):advice 定義了在 pointcut 裡面定義的程式點具體要做的操作,它通過 before、after 和 around 來區別是在每個 joint point 之前、之後還是代替執行的**。

target(目標物件):織入 advice 的目標物件.。前置通知(before):在目標方法被呼叫之前呼叫通知方法。

後置通知(after):在目標方法返回或丟擲異常之後呼叫通知方法。

返回通知(after-returning):在目標方法返回之後呼叫通知方法。

異常通知(after-throwing):在目標方法丟擲異常之後呼叫通知方法。

環繞通知(around):在目標方法呼叫之前和呼叫之後執行自定義的行為。

we**ing(織入):將 aspect 和其他物件連線起來, 並建立 adviced object 的過程

(本人後續將會持續記錄spring的學習情況)

aop 面向切面程式設計

起源 研究人員就對物件導向思想的侷限性進行了分析。他們研究出了一種新的程式設計思想,借助這一思想或許可以通過減少 重複模組從而幫助開發人員提高工作效率。隨著研究的逐漸深入,aop也逐漸發展成一套完整的程式設計思想,各種應用aop的技術也應運而生。aop思想 定義乙個切面,在切面的縱向定義處理方法,處...

AOP面向切面程式設計

1 概念 面向切面程式設計,通過預編譯方式和執行期動態 實現程式功能的統一維護的一種技術。aop是oop的延續,利用aop可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程式的可重用性,同時提高了開發的效率 2 作用 1.解耦,將通用性的功能模組 與業務 解耦 ioc專...

AOP 面向切面程式設計

aop aspect oriented programming 即面向切面程式設計,可以說是oop object oriented programming 物件導向程式設計的補充和完善。面向切面程式設計是物件導向中的一種方式而已。在 執行過程中,動態嵌入其他 叫做面向切面程式設計。常見的使用場景 日...