【发布时间】:2016-08-08 06:58:00
【问题描述】:
我正在使用 Spring AspectJ 记录方法执行统计信息,但是,我想在不更改切入点表达式的情况下从中排除一些类和方法。
为了排除某些方法,我创建了一个自定义注释,用于过滤掉。但是我无法对课程做同样的事情。
这是我的方面定义 -
@Around("execution(* com.foo.bar.web.controller.*.*(..)) "
+ "&& !@annotation(com.foo.bar.util.NoLogging)")
public Object log(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
// logging logic here
}
NoLogging 是我用于排除方法的自定义注解。
那么如何在不更改切入点表达式和不添加新顾问的情况下过滤掉某些类?
【问题讨论】:
-
我认为这是不可能的,执行将与您的定义相匹配,并在开始时加载。也许您可以尝试创建一个新的 @Around 方面并检查它是否覆盖了以前的方面。但我不确定。
标签: spring spring-aop spring-aspects