AOP框架簡介

2021-06-28 23:19:11 字數 785 閱讀 9049

aop:面向切面程式設計,是一種設計理念,並非spring特有。aop通過橫向分離關注點,把一些公共的輔助性元件**從核心元件**中剝離,降低元件之後的耦合性,提高元件**的復用性。aop有一些基本概念,網上到處都是,這裡也不能免俗:

aop一般是**技術和位元組碼替換技術的應用,通過在合適的時機替換掉原有的位元組碼來達到增加或替換原有的**邏輯,這裡的合適時機主要下面幾個:

編譯期:在類編譯器就把切面織入,這種方式叫做靜態織入,代表技術有aspectj。因為切面是在編譯期織入的,所以幾乎不佔執行時開銷,效能比較好,但是需要特定的編譯壞境,而且還要多學一門語法,學期曲線相對較陡。非常遺憾,一直沒有對aspectj語法做過深入的研究,所以後面的篇章不會過多的提到這種方式,後面的篇章會著重分析後面兩種方式。

類載入期:在類載入時注入介面,spring中ltw就是這種方式,spring ltw也運用了aspectj技術。由於是在類載入器織入,所以會占用一定的執行時開銷,但是一般情況下,系統執行時大部分類只會被載入一次,所以對效能的影響也相對較小,這種方式一般是通過jvm**(注意不是jdk動態**)來實現的,所以執行時需要掛載乙個jvm agent**,這種方式還有乙個潛在的好處,很容器實現插拔式的織入,比如我想在除錯程式的時候織入切面但是執行時不織入,那只需要正式執行時不掛載**就行了。

執行時:在執行注入,通過位元組碼增強技術比如jdk動態**、cglib**實現。切面織入在每次bean例項建立時執行,這種方式效能較差,但是使用最方便,不用特定的編譯壞境,不用多學一門語言,也不用在執行時掛接乙個jvm**。

後面的篇章著重學習分析spring的ltw和spring aop。

AOP簡介AOP是什麼?

aop是什麼?aspect oriented programming aop 從名字上說類似oop object oriented programming。aop是oop的延續,是aspect oriented programming的縮寫,意思是面向方面程式設計。而什麼是方面哪?方面也可以認為是關...

Spring框架 AOP細節

知己海記憶體 2016 11 24 10 17 1切入點表示式 1.1作用 通過表示式的方式定位乙個或多個具體的連線點。1.2語法細節 切入點表示式的語法格式 execution 許可權修飾符 返回值型別 簡單類名 全類名 方法名 引數列表 舉例說明 表示式execution com.atguigu...

Spring框架AOP原理

aop aspect oriented programming 意思就是面相切面程式設計。通俗來說就是一種在通過預編譯方式和執行期間動態 實現程式功能的統一維護的一種技術,這種在執行時,動態的將 切入到類的指定方法 指定位置上的程式設計思想就是面向切面程式設計,aop通過一系列的 來實現的。說到底,...