AOP 使用自定义注解method.getAnnotation为null_yongqi_wang的博客-CSDN博客_method.getannotation

这个aop拦截的是ServiceImpl的一个方法,然后这个ServiceImpl又启动了事务管理,而事务管理又是基于AOP的。

也就是说,这个权限的@Around的切面拦截的是个代理对象的方法,而代理对象的方法是不会把原来父类中的方法的注解加上去的,所以这里这个注解的对象为null。

private String getOperationOfTheAnnotation(ProceedingJoinPoint proceedingJoinPoint) throws Exception {        // 方法签名        Signature signature =  proceedingJoinPoint.getSignature();        // 获取的是代理类的method对象        Method method = ( (MethodSignature)signature ).getMethod();        // 这个方法才是目标对象上有注解的方法        Method realMethod = proceedingJoinPoint.getTarget().getClass().getDeclaredMethod(signature.getName(), method.getParameterTypes());        // 取出对应的注解        AuthorizationNeed authorizationNeed = realMethod.getAnnotation(AuthorizationNeed.class);                return authorizationNeed.operation();                     }

原网址: 访问
创建于: 2021-03-10 15:41:14
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论