Join point(連接點)
所謂連接點是指那些被攔截到的點。在 Spring中這些點指的是方法,可以看作正在訪問的,或者等待訪問的那些需要被增強功能的方法。Spring 只支持方法類型的連接點。
Pointcut(切入點)
所謂切入點是一個規則,定義了我們要對哪些 Joinpoint 進行攔截。因爲在一個程序中會存在很多的類,每個類又存在很多的方法,而哪些方法會應用 AOP 對該方法做功能增強呢?
這就需要依據我們配置的切入點規則。
Advice(通知)
所謂通知是指攔截到 Joinpoint 之後所要做的事情就是通知。 也就是對方法做的增強功能。
前置通知
在連接點之前運行的通知類型,它不會阻止流程進行到連接點,只是在到達連接點之前運行該通知內的行爲,當然 -—— 除非它引發異常;
後置通知
在連接點正常完成後要運行的通知,正常的連接點邏輯執行完,會運行該通知,當然 —— 方法正常返回而沒有引發異常;
最終通知
無論連接點執行後的結果如何,正常還是異常,都會執行的通知;
異常通知
如果連接點執行因拋出異常而退出,則執行此通知;
環繞通知
環繞通知可以在方法調用之前和之後執行自定義行爲。
Target (目標)
Target 指的是代理的目標對象,更通俗的解釋就是:AOP 對連接點方法做增強,底層是代理模式生成連接點所在類的代理對象,那麼連接點所在的類,就是被代理的類稱呼爲 Target。
Aspect(切面)
切面本質是一個類,只不過是個功能類,作爲整合 AOP 的切入點和通知。一般來講,需要在 Spring 的配置文件中配置,或者通過註解來配置。
Weaving(織入)
織入是一種動作的描述,在程序運行時將增強的功能代碼也就是通知,根據通知的類型(前綴後綴等…)放到對應的位置,生成代理對象。
Proxy(代理)
一個類被 AOP 織入增強後,產生的結果就是代理類