[英]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)")
这意味着什么都没有记录。
您确定注释不在mypackage2
与TimeLogger
相同吗?
您还可以尝试使用:
@Around("execution(* *(..)) && @annotation(ann)")
public Object around(ProceedingJoinPoint point, TimeLog ann) throws Throwable {
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.