对于具有特定注释的类的所有方法,@AspectJ切点

问题:

我想用指定的注释(比如@Monitor)来监视所有类的所有公共方法(注意:注解是在类级别的)。这可能是一个可能的切入点?
注意:我正在使用@AspectJ风格的Spring AOP。

回答:

你应该把一个类型切入点和一个方法切入点结合起来。
这些切入点将完成查找标有@Monitor注解的类中的所有公共方法的工作:

@Pointcut("within(@org.rejeev.Monitor *)")
public void beanAnnotatedWithMonitor() {}

@Pointcut("execution(public * *(..))")
public void publicMethod() {}

@Pointcut("publicMethod() && beanAnnotatedWithMonitor()")
public void publicMethodInsideAClassMarkedWithAtMonitor() {}

建议最后的切入点,结合前两个,你就完成了!
如果您有兴趣,可以在这里用@AspectJ风格写一个带example documentcheat sheet

 
 
Code问答: http://codewenda.com/topics/java/
Stackoverflow: @AspectJ pointcut for all methods of a class with specific annotation

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

6 + 1 =