繁体   English   中英

在AOP注释切入点上获取注释

[英]Getting annotation on AOP annotation pointcut

我试图在这样的AOP切入点中捕获我的注释(如在此问题上所见):

@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异常java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut 如果删除Traza参数,则该参数将起作用,并且无论我在何处使用@Traza对其进行注释,切入点都将起作用。

我知道我可以使用反射来获取批注,但是这也行不通吗?

任何有相同问题的人,以下是解决方法:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM