位置:首頁 > Java技術 > Spring > Spring框架的AOP

Spring框架的AOP

Spring框架的關鍵組件是麵向方麵編程(AOP)框架。麵向方麵的編程不僅打破程序邏輯分成不同的部分稱為所謂的擔憂。跨越多個點的應用程序的功能被稱為橫切關注點和這些橫切關注點是從應用程序的業務邏輯概念上區分開來。還有像日誌記錄,審計,聲明性事務,安全性和高速緩存等方麵的各種常見的好例子

模塊化的OOP中的關鍵單元是類,而在AOP中模塊化的單元則是切麵。依賴注入可以幫助你從對方解耦應用程序對象和AOP可以幫助你從他們影響的對象分離橫切關注點。 AOP是一樣的編程語言如Perl,.NET,Java和其他觸發器。

Spring AOP模塊提供了攔截器攔截的應用程序,例如,執行一個方法時,可以之前或之後執行的方法添加額外的功能。

AOP術語:

在我們開始使用AOP之前,先熟悉AOP的概念和術語。這些條款是不特定於Spring,問題都是有關AOP。

術語 描述
Aspect A module which has a set of APIs providing cross-cutting requirements. For example, a logging module would be called AOP aspect for logging. An application can have any number of aspects depending on the requirement.
Join point This represents a point in your application where you can plug-in AOP aspect. You can also say, it is the actual place in the application where an action will be taken using Spring AOP framework.
Advice This is the actual action to be taken either before or after the method execution. This is actual piece of code that is invoked during program execution by Spring AOP framework.
Pointcut This is a set of one or more joinpoints where an advice should be executed. You can specify pointcuts using expressions or patterns as we will see in our AOP examples.
Introduction An introduction allows you to add new methods or attributes to existing classes.
Target object The object being advised by one or more aspects, this object will always be a proxied object. Also referred to as the advised object.
Weaving Weaving is the process of linking aspects with other application types or objects to create an advised object. This can be done at compile time, load time, or at runtime.

建議的類型

Spring方麵可以用5種下麵提到的建議:

Advice 描述
before 在一個方法執行之前運行的建議。
after 該方法的執行,無論其結果如何運行後建議。
after-returning 隻有當方法成功地完成了一個方法執行後運行的建議。
after-throwing 在一個方法執行後運行建議隻有當方法因拋出一個異常。
around 建議的方法之前和之後運行建議被調用。

自定義方麵實現

Spring支持@AspectJ注解風格的方法,並實現自定義方麵的架構為基礎的方法。這兩種方法已被詳細地在下麵的兩個子章節解釋

方法 描述
基於XML Schema 切麵可以使用類以及基於XML的配置來實現。
基於@AspectJ @ AspectJ是指聲明方麵的風格注釋的使用Java 5注釋普通的Java類。