获取AOP注释切入点的注释

时间:2014-06-30 08:45:45

标签: java annotations aop

我试图在像这样的AOP切入点中捕获我的注释(如this question所示):

@After("@annotation(com.mypackage.annotation.Traza)")
        protected void logAnnotatedMethods(JoinPoint pjp, Traza traza) throws Throwable {
            LOGGER.info("It's here");
            LOGGER.info("Traza:" + traza);
        }

但我一直得到java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut例外。如果我删除了Traza参数,那么它可以工作,切入点在我用@Traza注释的任何地方都可以工作。

我知道我可以使用反射来获取注释,但这不应该起作用吗?

1 个答案:

答案 0 :(得分:1)

任何有同样问题的人,这是解决方案:

@After("@annotation(traza)")
protected void logAnnotatedMethods(JoinPoint pjp, Traza traza) throws Throwable {
    LOGGER.info("It's here");
    LOGGER.info("Traza:" + traza);
}

即,将参数名称设置为@After注释中的@annotation位。

相关问题