Java 如何创建一个切入点来过滤调用者的类型?

Java 如何创建一个切入点来过滤调用者的类型?,java,aspectj,spring-aop,Java,Aspectj,Spring Aop,是否可以创建一个只在从特定类调用方法时才应用的切入点 我只希望在调用上下文为特定类型时运行方面…如果我理解这个问题,对于基本场景,我建议在以下范围内使用: call(* someMethod(..)) && within(SomeContainingClass) “从SomeContainingClass中调用someMethod” 对于一个更动态的场景,您的类调用一些辅助类,然后调用感兴趣的方法,我将使用cflow: call(* someMethod(..)) &&

是否可以创建一个只在从特定类调用方法时才应用的切入点


我只希望在调用上下文为特定类型时运行方面…

如果我理解这个问题,对于基本场景,我建议在以下范围内使用:

call(* someMethod(..)) && within(SomeContainingClass)
“从SomeContainingClass中调用someMethod”

对于一个更动态的场景,您的类调用一些辅助类,然后调用感兴趣的方法,我将使用cflow:

call(* someMethod(..)) && cflow(execution(* *(..) && within(SomeType))
“在SomeType中执行的方法的控制流中调用someMethod”


后者为检查增加了一些运行时成本,而前者是完全静态确定的(在编织时)。

例如,您指的是一个名为
foo()
的方法,您有一个切入点
执行(**…foo())
,您希望将该切入点限制为具有method
foo()的特定类型
?查看cflow和下面的cflow。他们挑了这个箱子,看起来正好合适