(1)切面(Aspect):被抽取的公共模塊,可能會橫切多個對象。在Spring AOP中,切面可以使用通用類(基於模式的風格)或者在普通類中以@AspectJ注解來實現。
(2)連接點(Join point):指方法,在Spring AOP中,一個連接點總是代表一個方法的執行。
(3)通知(Advice):在切面的某個特定的連接點(Join point)上執行的動作。通知有各種類型,其中包括“around”、“before”和“after”等通知。許多AOP框架,包括Spring,都是以攔截器做通知模型,並維護一個以連接點為中心的攔截器鏈。
(4)切入點(Pointcut):切入點是指 我們要對哪些Join point進行攔截的定義。通過切入點表達式,指定攔截的方法,比如指定攔截add*、search*。
(5)引入(Introduction):(也被稱為內部類型聲明(inter-type declaration))。聲明額外的方法或者某個類型的字段。Spring允許引入新的接口(以及一個對應的實現)到任何被代理的對象。例如,你可以使用一個引入來使bean實現IsModified接口,以便簡化緩存機制。
(6)目標對象(Target Object):被一個或者多個切面(aspect)所通知(advise)的對象。也有人把它叫做被通知(adviced)對象。既然Spring AOP是通過運行時代理實現的,這個對象永遠是一個被代理(proxied)對象。
(7)織入(Weaving):指把增強應用到目標對象來創建新的代理對象的過程。Spring是在運行時完成織入。
切入點(pointcut)和連接點(join point)匹配的概念是AOP的關鍵,這使得AOP不同於其它僅僅提供攔截功能的舊技術。切入點使得定位通知(advice)可獨立於OO層次。例如,一個提供聲明式事務管理的around通知可以被應用到一組橫跨多個對象中的方法上(例如服務層的所有業務操作)。