Spring中AOP相關概念

Join point(連接點)

所謂連接點是指那些被攔截到的點。在 Spring中這些點指的是方法,可以看作正在訪問的,或者等待訪問的那些需要被增強功能的方法。Spring 只支持方法類型的連接點。

Pointcut(切入點)

所謂切入點是一個規則,定義了我們要對哪些 Joinpoint 進行攔截。因爲在一個程序中會存在很多的類,每個類又存在很多的方法,而哪些方法會應用 AOP 對該方法做功能增強呢?

這就需要依據我們配置的切入點規則。

Advice(通知)

所謂通知是指攔截到 Joinpoint 之後所要做的事情就是通知。 也就是對方法做的增強功能。

前置通知

在連接點之前運行的通知類型,它不會阻止流程進行到連接點,只是在到達連接點之前運行該通知內的行爲,當然 -—— 除非它引發異常;

後置通知

在連接點正常完成後要運行的通知,正常的連接點邏輯執行完,會運行該通知,當然 —— 方法正常返回而沒有引發異常;

最終通知

無論連接點執行後的結果如何,正常還是異常,都會執行的通知;

異常通知

如果連接點執行因拋出異常而退出,則執行此通知;

環繞通知

環繞通知可以在方法調用之前和之後執行自定義行爲。

Target (目標)

Target 指的是代理的目標對象,更通俗的解釋就是:AOP 對連接點方法做增強,底層是代理模式生成連接點所在類的代理對象,那麼連接點所在的類,就是被代理的類稱呼爲 Target。

Aspect(切面)

切面本質是一個類,只不過是個功能類,作爲整合 AOP 的切入點和通知。一般來講,需要在 Spring 的配置文件中配置,或者通過註解來配置。

Weaving(織入)

織入是一種動作的描述,在程序運行時將增強的功能代碼也就是通知,根據通知的類型(前綴後綴等…)放到對應的位置,生成代理對象。

Proxy(代理)

一個類被 AOP 織入增強後,產生的結果就是代理類

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章