0

基本上,我正在尝试创建一个日志系统,它将记录大多数控制器方法(它们的参数、主体、状态代码等),但是,由于某些特定原因,我不想记录的控制器方法很少。我不想创建一个注释来表明这个方法将被记录(因为会有很多),相反,我想创建一个注释来表明这个方法不应该被记录。显然,我不能否定 Spring Aspect 建议中的注释,那么有什么解决方法吗?(例如从 获取方法的所有注解ProceedingJoinPoint,然后检查它们是否包含该NoLog注解)

4

1 回答 1

0
MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
Method method = joinPoint.getTarget().getClass()
      .getMethod(methodSignature.getMethod().getName(),
                 methodSignature.getMethod().getParameterTypes());
CustomAnnotation annotation = method.getAnnotation(CustomAnnotation.class);

好吧,看起来你可以使用上面的代码来尝试获取CustomAnnotation你的方法,如果你的方法没有被 this 注释CustomAnnotation,anull将被返回,否则将返回一个Proxy对象

于 2019-11-28T06:43:36.997 回答