[英]How to define a Pointcut to pick out all methods invoked by the specified method?
有沒有辦法在 AspectJ 中定義一個切入點來挑選出由指定方法直接執行的每個方法?
例如,如果有一個parentMethod()
在classA
,看起來像:
public void parentMethod() {
classB.methodX();
classC.methodY();
}
我想定義一個切入點,該切入點僅使用有關parentMethod
的信息來挑選出何時執行其調用的方法methodX()
和methodY()
。 有沒有辦法使用 AspectJ 切入點來實現這一點?
我認為我們不是在談論繼承,所以你不應該稱它為“父方法”。 你只是指一個調用其他方法的方法,不是嗎? 無論如何,關於你的問題:
與原生 AspectJ 的cflow()
和cflowbelow()
切入點相比,使用 Spring AOP 表達控制流切入點的方法有限。 在您的情況下,如果您想堅持使用基於代理的 Spring AOP, ControlFlowPointcut
可能就足夠了,因為您不需要任何方法名稱模式,但似乎有一個固定的方法名稱作為您的目標。 有關更多信息,請參閱:
ControlFlowPointcut
資源的基本指針。MultiMethodControlFlowPointcut
匹配(目前 Spring 開箱即用仍不支持)。cflow
和cflowbelow
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.