Spring中的AOP概念
阿新 • • 發佈:2022-04-15
概念
面向切面程式設計。說白了就是把程式重複程式碼抽取出來,在需要執行的時候,使用動態代理技術,在不修改原始碼的基礎上,對已有方法進行增強。參考:上一篇文章轉賬問題代理優化
細節
術語
Jointpoint(連線點)————業務中的所有方法
所謂連線點是指那些被攔截到的點。在spring中,這些點指的是方法,因為spring只支援方法型別的連線點。
Pointcut(切入點)————業務中被增強的方法
所謂切入點是指我們要對哪些Jointpoint進行攔截的定義
Advice(通知/增強)
所謂通知是指攔截到Jointpoint之後所要做的事情就是通知。
通知的型別:前置通知,後置通知,異常通知,最終通知,環繞通知
Introduction(引介)
引介是一種特殊的通知在不修改類程式碼的前提下,Introduction可以在執行期為類動態地新增一些方法或Field
Target(目標物件)
代理的目標物件,即被代理的物件
Weaving(織入)
是指把增強應用到目標物件來建立新的代理物件的過程
spring:動態代理織入
Aspectj:編譯期織入和類裝載期織入
Proxy(代理)
一個類被AOP織入增強後,就產生一個結果代理類。(即產生的代理物件)
Aspect(切面)
是切入點和通知(引介)的結合