zoukankan      html  css  js  c++  java
  • 从aop中获取被拦截方法中的参数

    @Aspect
    public class CacheManager {

    }


    @Before("execution(* com.aliexpress.social.game.cointree.cointree.gateway.application.*.*(..))")
    public void migrateCheck(JoinPoint joinPoint) {
    String userId = getUserIdFromAop(jointPoint);
    }

    //从拦截的参数中获取用户id
    private String getUserIdFromAop(JoinPoint joinPoint){
    //https://www.cnblogs.com/yln20170705/p/10511743.html

    //类名
    String clazzName = joinPoint.getTarget().getClass().getName();
    MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
    //方法名
    String methodName = methodSignature.getName();
    //参数名数组
    String[] parameters = methodSignature.getParameterNames();
    //参数值
    Object[] args = joinPoint.getArgs();

    //获取参数名对应数组下标
    RequestInfoDTO infoDTO = null;
    String userId = null;

    //infoDTO是被拦截的发方法的参数名,例如:plant(RequestInfoDTO infoDTO,Long cropId)
    int paramIndex = ArrayUtils.indexOf(parameters,"infoDTO");
    if (paramIndex != -1){
    //参数info在方法列表中,位于第一个位置
    infoDTO = (RequestInfoDTO)args[0];
    userId = infoDTO.getUserId();

    }
    log.info("getUserIdFromAop clazzName = {} methodName = {} parameters = {} args = {} userId = {} ",
    new Object[] {clazzName, methodName, JSON.toJSONString(parameters), JSON.toJSONString(args), userId});

    return userId;

    }

  • 相关阅读:
    C# switch-case
    Python学习日记之中文支持
    C++学习笔记(一)之指针
    python CGI 编程实践
    linux 配置 python3 CGI
    PowerShell入门简介
    资源整合,总有你想要的
    python 爬虫之 urllib库
    一天学一个Linux命令:第一天 ls
    DG磁盘分区提示错误
  • 原文地址:https://www.cnblogs.com/ctaixw/p/13210571.html
Copyright © 2011-2022 走看看