繁体   English   中英

围绕@annotation的方面不起作用

[英]Aspect around @annotation doesn't work

我写的日志记录机制不起作用。 我用:

Aspectjrt 1.7.3 Aspectjweaver 1.7.3春季3.0.6

@Aspect
public class TimeLogger {

    private static final Logger LOG = Logger.getLogger(TimeLogger.class);

    //@Around("execution(* myMethod(..))")
    //@Around("execution(* *(..)) && @annotation(TimeLog)")
    @Around("execution(* *(..)) && @annotation(mypackage.TimeLog)")
    public Object around(ProceedingJoinPoint point) throws Throwable {

        Method method = MethodSignature.class.cast(point.getSignature()).getMethod();

        long start = System.currentTimeMillis();
        Object result = point.proceed();

        LOG.info("AAAAAAAAAAAAA");

        return result;
    }
}


@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface TimeLog {
    LogLevels logLevel() default LogLevels.DEBUG;
}


<bean id="execTimeLogger" class="mypackage2.TimeLogger">
</bean>

问题是这记录了一些东西

  //@Around("execution(* myMethod(..))")

这不起作用:

 //@Around(" execution(* *(..)) && @annotation(mypackage.TimeLog)")

这意味着什么都没有记录。

您确定注释不在mypackage2TimeLogger相同吗?

您还可以尝试使用:

@Around("execution(* *(..)) && @annotation(ann)")
public Object around(ProceedingJoinPoint point, TimeLog ann) throws Throwable {
    ...
}

暂无
暂无

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

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