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;
    }
}
相关推荐
float_com1 分钟前
【JavaWeb常见BUG】—— Lombok依赖失效问题
java·javaweb·bug分析与解决
通往曙光的路上2 分钟前
异步任务la
java·开发语言
SadSunset7 分钟前
(16)MyBatis执行流程分析(偏上层架构)
java·架构·mybatis
Tan_Ying_Y8 分钟前
JVM内存结构,什么是栈桢?
java·jvm
木井巳11 分钟前
【多线程】Thread类及常用方法
java·java-ee
小年糕是糕手18 分钟前
【C++】内存管理(下)
java·c语言·开发语言·数据结构·c++·算法
CoderYanger19 分钟前
第 479 场周赛Q2——3770. 可表示为连续质数和的最大质数
java·数据结构·算法·leetcode·职场和发展
L.EscaRC21 分钟前
Spring Boot开发中加密数据的模糊搜索
java·spring boot·后端
艾莉丝努力练剑21 分钟前
【Linux基础开发工具 (六)】Linux中的第一个系统程序——进度条Linux:详解回车、换行与缓冲区
java·linux·运维·服务器·c++·centos