zoukankan      html  css  js  c++  java
  • Spring AOP获取方法的参数名称和参数值

    aop配置: <aop:aspectj-autoproxy expose-proxy="true" />

    @Before(value = "execution(* com..xxxxx.web..*.*(..))")
        public void methodBefore(JoinPoint joinPoint)  {
            try {
                //类名
                String clazzName = joinPoint.getTarget().getClass().getName();
                MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
                //方法名
                String methodName = methodSignature.getName();
                //参数名数组
                String[] parameters =  methodSignature.getParameterNames();
                //参数值
                Object[] args = joinPoint.getArgs();
    
                //获取参数名对应数组下标
                int paramIndex = ArrayUtils.indexOf(parameters,"page");
                Page<T> page = null ;
                if (paramIndex != -1){
                    //参数值与参数名下标一致,获取分页page类
                     page =( Page<T>) args[paramIndex];
                }else{
                    return ;
                }
    
                //请求原始值
                int pageSize = page.getPageSize();
                //配置最大值
                int maxPageSize = config.getMaxPageSize();
                //配置默认值
                int defaultPageSize = config.getDefaultPageSize();
                //请求值超过安全阈值,拦截处理
                if (pageSize > maxPageSize) {
                    logger.warn("==pageSize参数异常=="+clazzName+"-"+methodName+":"+"pageSize大于配置最大值:"+maxPageSize+"!将设置默认值:"+defaultPageSize);
                    page.setPageSize(defaultPageSize);
                }
            }catch (Exception ex){
                logger.error("分页配置发生异常!",ex);
            }
        }
  • 相关阅读:
    pip国内源
    高级信息系统项目管理师十大管理优秀范文
    DOM是什么
    js中!!的妙用
    Angular中@Output()的使用方法
    Js数组内对象去重
    JS去除对象或数组中的空值('',null,undefined,[],{})
    JS数组与字符串相互转换
    Js删除数组中的空值
    promise.all的应用场景举例
  • 原文地址:https://www.cnblogs.com/yln20170705/p/10511743.html
Copyright © 2011-2022 走看看