AOP學習(1),常用註解解釋

AOP學習

AOP註解詳解

@Aspect

添加這個註解後,代表當前類可以被Spring管理。並且作爲切面。

@Before

前置增強,在有@Aspect的類中的方法添加此註解,就可以在方法中對切點進行方法的前置增強。相當於Advice接口下BeforeAdvice接口的作用。

@AfterReturning

後置增強,在有@Aspect的類中的方法添加此註解,就可以在方法中對切點進行方法的後置增強。方法正常退出後會執行此方法。相當於Advice接口下AfterReturningAdvice接口的作用。

@AfterThrowing

異常拋出增強,在有@Aspect的類中的方法添加此註解,就可以在方法中對切點進行方法的異常拋出增強。方法拋出異常後會執行此方法。相當於ThrowsAdvice接口的作用。

@After

final增強,無論是方法拋出異常還是正常執行完畢,都會執行@After註解下的方法。

@Around

環繞增強,這個是最常用的一種註解之一,通過調用切點的proceed方法來執行原方法,在調用前後可以進行切點的邏輯添加。相當於MethodInterceptor。

@DeclareParents

引介增強,相當於IntroductionInterceptor。在不改變原有方法的基礎上卻可以增加新的方法。IntroductionInterceptor繼承了MethodInterceptor和DynamicIntroductionAdvice接口,其中implementsInterface()方法(繼承自DynamicIntroductionAdvice)如果返回true,表示目前的 IntroductionInterceptor實現了給定的接口(也就是要額外增加行爲的接口),此時要使用invoke()調用該接口上的方法,讓目標執行額外的行爲。需要注意的是不可能使用MethodInvocation的proceed()方法,因爲要執行的是類原來沒有的行爲,proceed()方法沒有意義。

@annotation

註解註解,參數值可以填寫一個註解,這樣可以切所有所有被註解的方法。

@args

參數註解,該函數接收一個註解類的類名,當方法的運行時入參對象標註了指定的註解時,匹配切點。

@within

這個通常和@annotation進行比較,@annotation是方法級別的,@within是類級別的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章