AOP拦截使用自定义注解时Class.getAnnotation为null

  • Post author:
  • Post category:其他


执行的方法或者类有自定义注解,但是通过clazz.getAnnotation取值为null

UnAuthRequest annotation = clazz.getAnnotation(UnAuthRequest.class);

原因是Spring AOP使用CGLIB生成的代理是不会加上父类的方法上的注解的

所以试着获取了一下super

UnAuthRequest annotation = clazz.getSuperclass().getAnnotation(UnAuthRequest.class);

果然拿到了自定义的注解,Annotation有一个工具类,可以比较方便的从类中拿到Annotation

这样用:

AnnotationUtils.findAnnotation(clazz, UnAuthRequest.class)

这个方法的源码先从类中获取,再从父类中获取




版权声明:本文为weixin_45874277原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。