1. 程式人生 > >Spring AOP中常用名詞解釋

Spring AOP中常用名詞解釋

Spring AOP中常用名詞解釋

1.切面(Aspect)
一個關注點的模組化,這個關注點可能會橫切多個物件。事務管理是J2EE應用中一個關於橫切關注點的很好的例子。 在Spring AOP中,切面可以使用通用類(基於模式的風格) 或者在普通類中以 @Aspect 註解(@AspectJ風格)來實現。


2.連線點(Joinpoint)
在程式執行過程中某個特定的點,比如某方法呼叫的時候或者處理異常的時候。 在Spring AOP中,一個連線點 總是 代表一個方法的執行。 通過宣告一個org.aspectj.lang.JoinPoint型別的引數可以使通知(Advice)的主體部分獲得連線點資訊。


3.通知(Advice)
在切面的某個特定的連線點(Joinpoint)上執行的動作。通知有各種型別,其中包括“around”、“before”和“after”等通知。 通知的型別將在後面部分進行討論。許多AOP框架,包括Spring,都是以攔截器做通知模型, 並維護一個以連線點為中心的攔截器鏈。


4.切入點(Pointcut)
匹配連線點(Joinpoint)的斷言。通知和一個切入點表示式關聯,並在滿足這個切入點的連線點上執行(例如,當執行某個特定名稱的方法時)。 切入點表示式如何和連線點匹配是AOP的核心:Spring預設使用AspectJ切入點語法。


5.引入(Introduction)


(也被稱為內部型別宣告(inter-type declaration))。宣告額外的方法或者某個型別的欄位。 Spring允許引入新的介面(以及一個對應的實現)到任何被代理的物件。例如,你可以使用一個引入來使bean實現 IsModified 介面,以便簡化快取機制。


6.目標物件(Target Object)
被一個或者多個切面(aspect)所通知(advise)的物件。也有人把它叫做 被通知(advised) 物件。 既然Spring AOP是通過執行時代理實現的,這個物件永遠是一個 被代理(proxied) 物件。


7.AOP代理(AOP Proxy)
AOP框架建立的物件,用來實現切面契約(aspect contract)(包括通知方法執行等功能)。 在Spring中,AOP代理可以是JDK動態代理或者CGLIB代理。 注意:Spring 2.0最新引入的基於模式(schema-based)風格和@AspectJ註解風格的切面宣告,對於使用這些風格的使用者來說,代理的建立是透明的。


8.織入(Weaving)
把切面(aspect)連線到其它的應用程式型別或者物件上,並建立一個被通知(advised)的物件。 這些可以在編譯時(例如使用AspectJ編譯器),類載入時和執行時完成。 Spring和其他純Java AOP框架一樣,在執行時完成織入。