文档章节

开发时请求数据显示

x
 xxm1995
发布于 03/01 09:53
字数 262
阅读 0
收藏 0
/**
 * 开发时请求数据显示
 * @author xxm
 * @date 2019/1/5 11:16
 * @version V1.0
 */
@Aspect
@Component
@ConditionalOnProperty(name = "dev.webLog", havingValue = "true")
public class WebLogAspect {
    private static final Logger logger = LoggerFactory.getLogger(WebLogAspect.class);

    //扫描controller中的请求
    @Pointcut("execution( * *..controller.*.*(..))")
    public void logPointCut() {
    }

    /**
     * 显示请求时数据
     */
    @Before("logPointCut()")
    public void doBefore(JoinPoint joinPoint) throws Throwable {
        // 接收到请求,记录请求内容
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();

        // 记录下请求内容
        logger.debug(request.getMethod()+" 请求 : " + request.getRequestURL().toString());
        // 获取真实的ip地址
//        logger.info("IP : " + IPAddressUtil.getClientIpAddress(request));
        logger.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "."
                + joinPoint.getSignature().getName());
        logger.debug("参数 : " + Arrays.toString(joinPoint.getArgs()));
//        loggger.info("参数 : " + joinPoint.getArgs());

    }

    /**
     * 显示请求完成的返回值
     * returning的值和doAfterReturning的参数名一致
     */
    @AfterReturning(returning = "ret", pointcut = "logPointCut()")
    public void doAfterReturning(Object ret) {
        // 处理完请求,返回内容(返回值太复杂时,打印的是物理存储空间的地址)
        logger.debug("返回值 : " + ret);
    }

    /**
     * 显示请求耗时
     */
    @Around("logPointCut()")
    public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
        long startTime = System.currentTimeMillis();
        // ob 为方法的返回值
        Object ob = pjp.proceed();
        logger.debug("耗时 : " + (System.currentTimeMillis() - startTime));
        return ob;
    }
}

© 著作权归作者所有

x
粉丝 0
博文 24
码字总数 12971
作品 0
菏泽
私信 提问
起点海外版 Hybrid App-内嵌页优化实践

本文作者:刘文涛 原创声明:本文为阅文前端团队 YFE 成员出品,请尊重原创,转载请联系公众号 (id: yuewen_YFE) 获取授权,并注明作者、出处和链接。 今年年初我司开启了起点品牌的海外之旅...

阅文集团前端团队
2018/06/25
0
0
被小程序坑了这几点,你遇到了吗?

听人说:如果以前有个APP开发经验,那么转小程序开发应该并不难。 因为你只需要简单学习三种语言的写法,就能轻松上手开发小程序。 虽然说的很有道理,我并不否认小程序的逻辑功能都是使用J...

迷茫的飞行猪
2017/10/23
0
0
AngularJs应用页面切换优化方案

葡萄城的一款尚在研发中的产品,对外名称暂定为X项目。其中使用了已经上市的wijmo中SpreadJS产品,另外,在研发过程中整理了一些研发总结分享给大家。如本篇的在页面切换的过程中优化方案,欢...

葡萄城控件技术团队
2015/01/15
0
8
jsp乱码解决(get和post请求情况不同)

当输入中文时method=get时显示乱码 当输入中文时method=post时中文正常显示 原因:就是当请求方式是GET时,并不把表单数据封装在请求信息的正文中,请求的只是简单的想获取 并不发送信息给服...

EDIAGD
2014/02/20
0
0
前端APP JS框架--BIN Framework

BIN是一个简单、轻量的前端JS框架,可用于Hybrid(结合Cordova框架) APP、SPA(Single Page Application) APP、MPA(Multiple Page Application) APP以及一般的网页开发。 工程结构和开发模式 ...

Checker
2015/09/22
3.7K
0

没有更多内容

加载失败,请刷新页面

加载更多

DevExpress-winform实现打印功能

创建Windows窗体,拖入richEdtControl(或者GridControl)+打印按钮(button) 双击打印,创建click事件,直接用richEdtControl1调用ShowPrintPreview()方法 private void btnPrint_Click(o...

元歌
今天
2
0
Lucene

Lucene 简介: Lucene是apache下的一个开源的全文检索引擎工具 1.1.全文检索:先分词创建索引,再搜索(分词:就是将一个句子分成多个单词) 全文检索的流程分为两大部分:索引流程、搜索流程...

klmkom
今天
2
0
SpringBoot2.0高级案例(03):集成 JavaMail ,实现异步发送邮件

本文源码码云地址:知了一笑https://gitee.com/cicadasmile/middle-ware-parent 一、JavaMail的核心API 1、API功能图解 2、API说明 (1)、Message 类: javax.mail.Message 类是创建和解析邮...

知了一笑
今天
19
0
Andrew Ng 机器学习鸡尾酒音频分离算法解析

[w,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x'); 在学习机器学习的课程过程中,ng用一行代码实现了音频分离的效果,这里对这行代码进行解析。 [x1, Fs1] = audioread('E:\sounds\f...

gdxz110
今天
2
0
动漫人物阴影绘画技巧

动漫人物阴影绘画技巧?我们在上色的时候,对色彩的使用都大致了解,但是却不知道怎么画阴影。如果这是在现实日常生活中会看到的,但是要想画出来的话就很难了,下面就让我们一起来看看画阴影...

设绘嗨
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部