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;
    }
}
相关推荐
cike_y1 分钟前
Mybatis之分页的实现&日志工厂&Log4j详解
数据库·log4j·mybatis
海南java第二人3 分钟前
Java类加载机制深度解析:从双亲委派到自定义加载的完整指南
java·spring
侧耳倾听1114 分钟前
基准测试框架JMH
java·测试工具
草莓熊Lotso5 分钟前
C++ 智能指针完全指南:原理、用法与避坑实战(从 RAII 到循环引用)
android·java·开发语言·c++·人工智能·经验分享·qt
better_liang5 分钟前
每日Java面试场景题知识点之-Dubbo
java·dubbo·rpc框架·企业级开发
Qiuner6 分钟前
Spring Boot AOP(五) 高级特性与源码实践
java·spring boot·后端
ℳ₯㎕ddzོꦿ࿐7 分钟前
Spring Boot MCP(stdio)工具实现的注意事项(踩坑总结)
java·spring boot·后端
代码方舟8 分钟前
Java 进阶:基于 Spring Boot 集成天远数据“人脸比对 V3”的最佳实践
java·大数据·spring boot·python
bbq粉刷匠9 分钟前
Java基础语法问答
java·开发语言·python
‿hhh1 小时前
微服务智慧交通管理平台 - 项目实现(结合Qoder搭建)
java·人工智能·机器学习·微服务·架构·需求分析·规格说明书