Spring AOP

AOP is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. 

簡單來說:AOP可以在不修改代碼本身的情況下向現有代碼添加額外的行為。

例如平常寫的log其實也就是運用AOP的概念


AOP中包括 5 大核心概念:切面(Aspect)、連接點(JoinPoint)、通知(Advice)、切入點(Pointcut)、AOP代理(Proxy)。

AOP中的一個重要術語是advice 。 它是aspect在特定的連接點處採取的操作。

Joinpoint點是程式的執行點,例如方法的執行或異常的處理。 在Spring AOP中,連接點始終代表方法的執行。

Pointcut是匹配Pointcut點的謂詞或表達式。

Advice與切入點表達式關聯,並在與該切入點匹配的任何連接點處運行。

Spring默認使用AspectJ切入點表達語言。





Advice的種類



1、前置通知 [ Before advice ] :在連接點前面執行,前置通知不會影響連接點的執行,除非此處拋出異常;

2、正常返回通知 [ After returning advice ] :在連接點正常執行完成後執行,如果連接點拋出異常,則不會執行

3、異常返回通知 [ After throwing advice ] :在連接點拋出異常後執行

4、返回通知 [ After (finally) advice ] :在連接點執行完成後執行,不管正常執行完成,還是拋出異常,都會執行返回通知中的內容;

5、環繞通知 [ Around advice ] :環繞通知圍繞在連接點前後,比如一個方法調用的前後。這種通知是最強大的通知,能在方法調用前後自定義一些操作。





0 Comments:

張貼留言