mybatis sql 拦截器

SqlLogInterceptor

复制代码
@Component
@Intercepts({
        @Signature(type = StatementHandler.class, method = "query", args = {Statement.class, ResultHandler.class}),
        @Signature(type = StatementHandler.class, method = "update", args = {Statement.class})
})
@Slf4j
public class SqlLogInterceptor implements Interceptor {

    @Override
    public Object intercept(Invocation invocation) throws Throwable {
        long startTime = System.currentTimeMillis();
        Object retVal = invocation.proceed();
        try {
            long endTime = System.currentTimeMillis();
            long time = endTime - startTime;
            String traceId = TraceIdUtil.getTraceId();
            if (StringUtils.isNotEmpty(traceId)) {
                log.info("time" + time);
            }
        }catch (Exception e){
            log.error("error", e);
        }
        return retVal;
    }
}
相关推荐
2333!!!!!10 小时前
rocket新手一些常见问题
java·开发语言
骇客野人10 小时前
Springboot 的 配置文件 application.yml 和 bootrap.yml 的由来和作用
java·spring boot·后端
wuminyu10 小时前
JVM锁膨胀与Futex源码解析
java·linux·c语言·jvm·c++
润乾软件10 小时前
SQLazy:从事件表中查出下一组的开始时刻
sql·sqlazy
CoderYanger10 小时前
A.每日一题:3622. 判断整除性
java·程序人生·算法·leetcode·面试·职场和发展·蓝桥杯
吴声子夜歌10 小时前
ApacheCommons——commons-lang3(Java 基础语言增强)(二)
java·开发语言·apache
xcl092510 小时前
幼儿托管系统开发实战:从需求分析到部署上线全指南
java·spring boot·需求分析
我不会起名字32210 小时前
一天一道算法题(26):栈的简单应用
java·数据结构·python·算法·leetcode·golang·
凯尔萨厮11 小时前
Java学习笔记十五(GUI)
java·笔记·学习
落木萧萧82511 小时前
MyBatis 关联查询的四种写法,为什么最后都变回了手写 XML
java·数据库·后端