Spring AOP(面向切面程式設計)是什麼?

else發表於2021-09-09

AOP 的全稱是“Aspect Oriented Programming”,即面向切面程式設計,它將業務邏輯的各個部分進行隔離,使開發人員在編寫業務邏輯時可以專心於核心業務,從而提高了開發效率。

AOP 採取橫向抽取機制,取代了傳統縱向繼承體系的重複性程式碼,其應用主要體現在事務處理、日誌管理、許可權控制、異常處理等方面。

目前最流行的 AOP 框架有兩個,分別為 Spring AOP 和 AspectJ。

Spring AOP 使用純 Java 實現,不需要專門的編譯過程和類載入器,在執行期間透過代理方式向目標類植入增強的程式碼。

AspectJ 是一個基於 Java 語言的 AOP 框架,從 Spring 2.0 開始,Spring AOP 引入了對 AspectJ 的支援。AspectJ 擴充套件了 Java 語言,提供了一個專門的編譯器,在編譯時提供橫向程式碼的植入。

為了更好地理解 AOP,就需要對 AOP 的相關術語有一些瞭解,這些專業術語主要包含 Joinpoint、Pointcut、Advice、Target、Weaving、Proxy 和 Aspect,它們的含義如下表所示。

名稱 說明
Joinpoint(連線點) 指那些被攔截到的點,在 Spring 中,可以被動態代理攔截目標類的方法。
Pointcut(切入點) 指要對哪些 Joinpoint 進行攔截,即被攔截的連線點。
Advice(通知) 指攔截到 Joinpoint 之後要做的事情,即對切入點增強的內容。
Target(目標) 指代理的目標物件。
Weaving(植入) 指把增強程式碼應用到目標上,生成代理物件的過程。
Proxy(代理) 指生成的代理物件。
Aspect(切面) 切入點和通知的結合。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2318/viewspace-2797929/,如需轉載,請註明出處,否則將追究法律責任。

相關文章