Spring 面向切面程式設計(AOP)理解

2021-08-21 16:08:51 字數 1138 閱讀 1610

1.解釋什麼是aop

面向切面的程式設計,或aop,是一種程式設計技術,允許程式模組化橫向切割關注點,或橫切典型的責任劃分,如日誌和事務管理。

2.aspect切面

aop核心就是切面,他將多個類的通用行為封裝成可重用的模組,該模組含有一組api提供橫切功能。比如,乙個日誌模組可以被稱作日誌的aop切面,根據需求的不同,乙個應用程式有若干個切面。在spring aop種,切面通過帶有@aspect註解的類來實現。

3.在spring aop 中,關注點和橫切關注的區別。

關注點是應用中乙個模組的行為,乙個關注點可能被定義為成我們乙個想要的實現的功能。

橫切關注點是乙個關注點,此關注點是整個應用都會用到的功能,並影響整個應用,比如日誌模組,安全,資料傳輸,幾乎應用的每個模組都需要的功能,因此這些都屬於橫切關注點。

比如上面的圖,藍色的線表示我們正常業務**, 正常的開發,黃色的線條就是我們插入的**,在不影響原有的模組功能,與**基礎上,插入我們需要的業務**,就是我們的aop程式設計,常說的日誌,有時候我們可能要知道乙個模組的執行前後過程,需要列印日誌資訊,可是如果業務**很多,不可能每個都去寫,使用aop就可以解決這個問題,實現封裝好日誌**資訊,使用aop切面很好簡便了開發。可以**的復用。

4連線點

連線點代表乙個應用程式的某個位置,在這個位置我們可以插入乙個aop切面,它實際上是個應用程式執行spring aop的位置。

5.通知

通知是個在方法執行前或執行後要做的動作,實際上是程式執行時要通過spring aop框架觸發的**段。

spring切面可以在應用五種型別的通知:

before:前置通知,在乙個方法執行前被呼叫。

after:在方法執行之後呼叫的通知,無論方法執行是否成功。

after-returning:僅當方法成功完成後執行的通知。

after-throwing:在方法丟擲異常退出時執行。

around:在方法執行之前和之後呼叫。

6.切點

切入點是乙個或一組連線點,通知將在這些位置執行,可以通過表達或匹配的方式指明。

7.什麼是引入

引入允許我們在已存在的類中增加新的方法和屬性。

Spring面向切面程式設計AOP

感謝zejian 大佬的分享 關於 spring aop aspectj 你該知曉的一切 大佬的分享讓我受益匪淺!首先學習aop前,弄清楚為什麼要使用aop?舉個栗子有助於理解 乙個支付轉賬的小栗子 我們每次使用手機支付時,不管轉賬還是支付都需要驗證支付資訊密碼。這時aop的好處就體現出來了,我們可...

Spring 的面向切面程式設計(AOP)

aop是一種新的方 是物件導向程式設計的補充。aop的主要關注點是切面,是切面模組化的橫切關注點。使用aop的好處 1.每個事物邏輯位於乙個位置,不分散。便於維護和公升級。2.業務模組更簡潔,只包含核心業務 spring aop的方式有2種,一種是通過註解的方式。一種是通過xml配置檔案的方式。1....

AOP(面向切面程式設計)和Spring 的AOP

aop 是面向切面程式設計,相對於oop 物件導向程式設計 spring 的aop 是aop 思想的一種實現 aop 可以說是oop 的補充和完善 oop 引入封裝 繼承和多型性等概念來建立一種物件層次結構,用以模擬公共行為的乙個集合。當我們需要為分散的物件引入公共行為的時候,oop 則顯得無能為力...