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;
    }
}
相关推荐
梁下轻语的秋缘5 分钟前
ESP32-WROOM-32E存储全解析:RAM/Flash/SD卡读写与速度对比
java·后端·spring
wanzhong23338 分钟前
开发日记8-优化接口使其更规范
java·后端·springboot
Knight_AL11 分钟前
Java 多态详解:概念、实现机制与实践应用
java·开发语言
C雨后彩虹15 分钟前
volatile 实战应用篇 —— 典型场景
java·多线程·并发·volatile
xie_pin_an15 分钟前
从二叉搜索树到哈希表:四种常用数据结构的原理与实现
java·数据结构
没有bug.的程序员20 分钟前
Java 并发容器深度剖析:ConcurrentHashMap 源码解析与性能优化
java·开发语言·性能优化·并发·源码解析·并发容器
kk哥88991 小时前
分享一些学习JavaSE的经验和技巧
java·开发语言
栈与堆2 小时前
LeetCode 21 - 合并两个有序链表
java·数据结构·python·算法·leetcode·链表·rust
lagrahhn2 小时前
Java的RoundingMode舍入模式
java·开发语言·金融
鸽鸽程序猿2 小时前
【JavaEE】【SpringCloud】注册中心_nacos
java·spring cloud·java-ee