本文介紹了如何為擴展特定類的所有類指定單個切入點的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我有來自不同包的多個類,它們擴展了一個類Super。
我想創建一個AOP切入點,它與擴展Super的所有類中的所有方法相匹配。
我已經嘗試過了:
@Around("within(com.mypackage.that.contains.super..*)")
public void aroundAllEndPoints(ProceedingJoinPoint joinPoint) throws Throwable {
LOGGER.info("before Proceed ");
joinPoint.proceed();
LOGGER.info("after Proceed");
}
但它不起作用。
有什么建議嗎?
推薦答案
切入點應為:
within(com.mypackage.Super+)
其中com.mypackage.Super
是完全限定的基類名稱,+
表示”所有子類”。這適用于Spring AOP。在AspectJ中,這將匹配太多連接點,而不僅僅是方法執行。下面是另一個同時適用于Spring AOP和AspectJ的切入點:
execution(* com.mypackage.Super+.*(..))
這篇關于如何為擴展特定類的所有類指定單個切入點的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,