在AOP中有幾個概念: — 方面(Aspect):一個關註點的模塊化,這個關註點實現可能另外橫切多個對象。事務管理是J2EE應用中一個很好的橫切關註點例子。方面用Spring的Advisor或攔截器實現。 — 連接點(Joinpoint):程式執行過程中明確的點,如方法的調用或特定的異常被拋出。 —
在AOP中有幾個概念:
— 方面(Aspect):一個關註點的模塊化,這個關註點實現可能另外橫切多個對象。事務管理是J2EE應用中一個很好的橫切關註點例子。方面用Spring的Advisor或攔截器實現。
— 連接點(Joinpoint):程式執行過程中明確的點,如方法的調用或特定的異常被拋出。
— 通知(Advice):在特定的連接點,AOP框架執行的動作。各種類型的通知包括“around”、“before”和“throws”通知。
— 切入點(Pointcut):指定一個通知將被引發的一系列連接點的集合。AOP框架必須允許開發者指定切入點,例如,使用正則表達式。
所以<aop:aspect>實際上是定義橫切邏輯,就是在連接點上做什麼,<aop:advisor>則定義了在哪些連接點上應用什麼<aop:aspect>。Spring這樣做的好處就是可以讓多個橫切邏輯
(即<aop:aspect>定義的)多次使用,提供可重用性。
總的來說:
1、Adivisor是一種特殊的Aspect,Advisor代表spring中的Aspect
2、advisor只持有一個Pointcut和一個advice,而aspect可以多個pointcut和多個advice