如何编写一个 Spring @AspectJ 切入点 ( @Pointcut
) 表达式来匹配一个类中的所有公共方法,而不管它们的参数列表如何?
我想要一个对具有特定注释的特定类的所有@AfterThrowing
公共方法都有切入点的方面(类似于其他人在之前的 SO 问题中想要的)。目前我的方面是这样的:@MyAnnotation
@Aspect
public final class ServiceDataAccessExceptionReporter {
@Pointcut("execution(public * com.example.Service.*(..)) && @annotation(com.example.MyAnnotation))")
public void annotatedMethod() {}
@AfterThrowing(pointcut = "annotatedMethod()", throwing = "exception")
public void reportException(final DataAccessException exception) {
...
}
}
Eclipse Spring 插件指示(使用源代码窗口中的箭头注释)这是正确的建议方法com.example.Service.getNames()
。但这并不表示com.example.Service.getTimes(String name)
已建议具有参数的方法,例如 。
那是因为带有@Pointcut
注释的方法没有参数吗?我怎样才能使切入点成为所有方法,而不管它们的参数列表如何?或者我必须为班级@Pointcut
中的每种参数列表单独设置一个?com.example.Service