Aspect切入点以匹配Annotation属性

时间:2011-12-05 10:12:16

标签: spring aop aspectj

我正在尝试使用带有AspectJ支持的Spring AOP来编织具有特定注释的方法。我知道通过使用切入点@annotation(classname)

可以很容易地做到这一点

但我需要根据注释的属性创建编织器。有问题的注释是Spring的@RequestMapping,我需要检查它的方法属性。

我知道我可以在建议的主体内部访问它,但我真正想要的是为每个匹配的注释创建一个建议。

这可能吗?

1 个答案:

答案 0 :(得分:1)

doesn't seem to be a way to do it,但您可以在输入时立即检查注释的参数,如果不满意则立即传递。

@Around("execution(public * *(..)) && @annotation(reqMap)")
public Object myMethod(ProceedingJoinPoint pjp, RequestMapping reqMap)
        throws Throwable {
    if (notRightPropertyValue(reqMap))
        return pjp.proceed();
    // Do your stuff here
}

如果这太不优雅,可以考虑发明一个额外的注释来标记你真正感兴趣的方法。