我有几个SomeInterface的实现。问题是在SomeInterface的所有实现中,executeSomething方法的切入点是什么。
public class SomeImplementation implements SomeInterface {
public String executeSomething(String parameter) {
// Do something
}
}
public class AnotherImplementation implements SomeInterface {
public String executeSomething(String parameter) {
// Do something different way
}
}
答案 0 :(得分:3)
该方法的切入点可以是方法执行或方法调用切入点。您需求的最具体的切入点如下所示:
execution(public String SomeInterface+.executeSomething(String))
call(public String SomeInterface+.executeSomething(String))
关于这些切入点类型的一些解释:
String
的所有公共方法,这些方法在SomeInterface
或其任何子类型中定义,名为executeSomething
并接受一个String
参数。这是可以为您的案例定义的最具体的类型模式,它只匹配String SomeInterface.executeSomething(String)
方法的实现。更常使用执行类型切入点,但在某些情况下,调用类型切入点也非常有用。
请参阅The AspectJ Language/Join Points and Pointcuts中的AspectJ Programming Guide章节以获取进一步的参考。