Aop的基本概念

2021-06-21 09:11:33 字數 1235 閱讀 4199

基本概念

joinpoint:在系統執行之前,aop的功能模組都需要織入到oop的功能模組中。所以,要進行這種織入過程,我們需要知道在系統的那些執行點上進行織入操作。這些將要在其上進行織入操作的系統執行點就稱之為joinpoint。(在spring aop 中僅支援方法級別的joinpoint)

pointcut:代表的是joinpoint的表達方式。將橫切邏輯織入當前系統的過程中,需要參照pointcut規定的joinpoint資訊,才可以知道應該往系統的哪些joinpoint上織入橫切邏輯。

pointcut指定系統中符合條件的一組joinpoint。

advice:是單一橫切關注點邏輯的載體,代表將會織入到joinpoint處的橫切邏輯。如果將aspect比作oop中的class,那麼advice就相當於class中的method。按照advice在joinpoint處執行時機的差異或者完成功能的不同,advice可分成以下具體形式:before advice,after advice(afterreturning advice、afterthrowing advice、afterfinally advice),around advice,introduction。

advisor:經典的spring aop使用advisor來表示切面的概念。乙個advisor包含了橫切**和切點。

aspect:是對系統中的橫切關注點邏輯進行模組化封裝的aop概念實體。aspect可以包含多個pointcut以及相應的advice定義。

市場上有很多aop框架,aop實現的強弱就體現在對連線點型別的支援。例如,spring aop只支援方法級的連線點,而其他一些aop框架,如aspectj和jboss,還支援屬性連線點。

aop的基本原理就是**。在**級別上理解就是,在目標物件(連線點所屬的物件)的基礎上,通過改造位元組碼,生產乙個新的物件,這個物件就是**物件,**物件的切入點位置織入了新的**。此時,呼叫**物件就像呼叫目標物件一樣,只是加入了新的功能。

**物件往往與目標物件有相同的父類(jdk動態**),或者就是目標物件的子物件(cglib)。

aop不是要取代oop,而是對oop補充。oop在橫切關注點問題上無能為力,例如日誌記錄、安全認證和事務控制等等。oop無法將橫切關注點模組化。

aop可以實現業務邏輯與系統服務(日誌記錄、安全認證以及事務控制)的分離。

Spring AOP 1 AOP基本概念

aop並不是spring的東西,spring整合了aop的功能,aop是種概念,好比oop,同oop相比,差別當然就是乙個是a乙個是o.這裡o比較熟悉就是object表示物件的意思,oop的核心是物件,同樣對於aop來說這裡a代表aspect,也就是aop的中心是aspect,aspect通常稱作 ...

基本概念 C 基本概念

由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...

基本概念 數控系統基本概念

第一章 基本概念 數控工具機cnc是一種按事先編制好的加工零件程式進行加工的高效 自動化加工裝置。是 computer numerical control machine tools 的簡稱。數控工具機較好地解決了複雜 精密 小批量 多品種的零件加工問題,是一種柔性的 高效能的自動化工具機。西門子系...