菜鳥理解spring AOP

2021-08-14 23:32:40 字數 753 閱讀 8276

aop(aspect oriented programming),即面向切面程式設計,可以說是oop(object oriented programming,物件導向程式設計)的補充和完善。oop引入封裝、繼承、多型等概念來建立一種物件層次結構,用於模擬公共行為的乙個集合。不過oop允許開發者定義縱向的關係,但並不適合定義橫向的關係,例如日誌功能。日誌**往往橫向地散布在所有物件層次中,而與它對應的物件的核心功能毫無關係對於其他型別的**,如安全性、異常處理和透明的持續性也都是如此,這種散布在各處的無關的**被稱為橫切(cross cutting),在oop設計中,它導致了大量**的重複,而不利於各個模組的重用。

aop技術恰恰相反,它利用一種稱為」橫切」的技術,剖解開封裝的物件內部,並將那些影響了多個類的公共行為封裝到乙個可重用模組,並將其命名為」aspect」,即切面。所謂」切面」,簡單說就是那些與業務無關,卻為業務模組所共同呼叫的邏輯或責任封裝起來,便於減少系統的重複**,降低模組之間的耦合度,並有利於未來的可操作性和可維護性。

使用」橫切」技術,aop把軟體系統分為兩個部分:核心關注點和橫切關注點。業務處理的主要流程是核心關注點,與之關係不大的部分是橫切關注點。橫切關注點的乙個特點是,他們經常發生在核心關注點的多處,而各處基本相似,比如許可權認證、日誌、事物。aop的作用在於分離系統中的各種關注點,將核心關注點和橫切關注點分離開來。

aop給我的感覺有點類似***,就是將某個方法(切入點)攔截下來,在其前後執行一些公用的**(可以理解為封裝出來的切面**)。我也是看了一遍博文之後才能這麼淺的理解。

把位址搬出來:

SpringAop 切面 理解

切面通俗來說,可以幫助我們簡化重複 我們在日常開發中,我們可能會在各個增刪改介面中記錄日誌,以便出現問題時可以及時有效地找出原因,但是系統中增刪改的介面不是乙個兩個,而是會有很多個,我們如果在所有增刪改的介面中編寫記錄日誌的 就會導致記錄日誌的的邏輯散布於系統中的任何犄角旮旯,導致介面臃腫,介面核心...

spring aop的理解記錄

對aop的一些理解記錄。連線點 joinpoint 切入點 pointcut 通知 advice 和切面 aspect 假設乙個物件小明,小明這個物件有四個方法 吃喝拉耍。還有乙個物件是他的僕人。假設僕人要完成對小明行為的aop,那麼這個時候,站在僕人的角度 連線點就是小明擁有的四個方法 吃喝拉耍,...

Spring AOP理解與使用

如果你想要使用aop,那麼正面spring框架基本已經會配置了,那麼就不再做詳述 1.特點 不改變原有的邏輯 的情況下,給系統增加新的功能,如事務控制 異常日誌資訊等 如圖所示,不改變controller和service之間的 增加對應的spring aop 功能 2.配置檔案spring aop....