前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AOP拦截参数、反回值、执行耗时

AOP拦截参数、反回值、执行耗时

原创
作者头像
时光_赌徒
修改2020-12-31 16:27:09
6540
修改2020-12-31 16:27:09
举报
文章被收录于专栏:记录记录
代码语言:javascript
复制
import com.google.common.base.Stopwatch;
import com.google.common.collect.Lists;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;

@Component
@Aspect
public class ControllerAspect {
    public static final Logger logger = LoggerFactory.getLogger(ControllerAspect.class);

    @Around("execution(public  com.lh.hous.config.Result  com.lh.hous.controller..*.*(..))")
    public Object handleControllerMethod(ProceedingJoinPoint joinPoint) throws Throwable {
        Stopwatch stopwatch = Stopwatch.createStarted();
        Result result;
        logger.info(
                new StringBuilder("执行Controller开始:")
                        .append(joinPoint.getSignature())
                        .append(";  参数:")
                        .append(Lists.newArrayList(joinPoint.getArgs()).toString())
                        .toString());
        result = (Result) joinPoint.proceed(joinPoint.getArgs());
        logger.info(
                new StringBuilder("执行Controller结束:")
                        .append(joinPoint.getSignature())
                        .append(";  返回值:")
                        .append(result.toString()).toString());
        logger.info(
                new StringBuilder("执行时间:")
                        .append(stopwatch.stop().elapsed(TimeUnit.MILLISECONDS))
                        .append("(毫秒)。").toString());
        return result;
    }


}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档