问答详情
源自:2-2 使用AOP处理请求(中)

使用这个aop日志处理, 在aspect中能获取,方法传入的入参吗

使用这个aop日志处理, 在aspect中能获取,方法传入的入参吗

提问者:imooc_yjy 2018-02-21 12:44

个回答

  • Oo脚印oO
    2018-02-22 12:11:56
    已采纳

    可以啊,joinPoint.getArgs()就可以了(JoinPoint是隐性的传入参数)

  • II_II
    2018-02-22 18:31:13

    上代码来得直接:

    // 一般,需要记录的信息有:url、method、ip、类方法、参数
    @Before("log()")
    public void doBefore(JoinPoint joinPoint){
       logger.info("Before");
       ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();       HttpServletRequest request  = attributes.getRequest();
       //url                                                //method
       logger.info("url={}",request.getRequestURL());       logger.info("method={}",request.getMethod());
       //ip                                                //类方法
       logger.info("ip={}",request.getRemoteAddr());        logger.info("class_method={}",joinPoint.getSignature().getDeclaringTypeName()+"."+joinPoint.getSignature().getName());
       //参数
       logger.info("args={}",joinPoint.getArgs());
    }