java - @annotation 周围的方面不起作用

标签 java spring aspectj

我编写的日志机制不起作用。我使用:

aspectjrt 1.7.3 方面jweaver 1.7.3 Spring 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 {
    ...
}

关于java - @annotation 周围的方面不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34754410/

相关文章:

java - 在 Cucumber 测试场景中比较整数值的最佳实践

java - 获取 SXSSFWorkbook 的文件大小

java - 如何在 Dijkstra 最短路径上获取路径

java - Spring 的 ObjectFactoryCreatingFactoryBean 可以与引用接口(interface)的泛型一起工作吗?

Java Spring - 拦截 REST 客户端的执行 (Hystrix Feign)

java - 同步发出声音

java - 预期有单个匹配 bean,但在 junitTest 中发现 3 : objectMapper, halObjectMapper,_halObjectMapper

java - 如何在spring集成测试中上传文件并将其设置为参数?

java - AspectJ:this 和目标上下文

java - aop :aspectj-autoproxy and tx:annotation-driven conflict in spring