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 分钟前
线性递推通用模板
java·开发语言·算法
StarRocks_labs10 分钟前
StarRocks I/O 模型揭秘(一):查询是如何被拆解与调度的?
starrocks·sql·pipeline·mpp·fe
coNh OOSI13 分钟前
Spring Boot问题总结
java·spring boot·后端
ISkp3V8b416 分钟前
基于项目工程构建SBOM(软件物料清单)的研究
java·visual studio
郝学胜-神的一滴17 分钟前
「栈与缩点的艺术」二叉树前序序列化合法性判定:从脑筋急转弯到工程实现
java·开发语言·数据结构·c++·python·算法
她说..21 分钟前
Java Object类与String相关高频面试题
java·开发语言·jvm·spring boot·java-ee
cTz6FE7gA25 分钟前
XSS、CSRF、SQL注入、防重放与敏感数据保护的分层策略
sql·xss·csrf
计算机学姐27 分钟前
基于SpringBoot的宠物店管理系统
java·vue.js·spring boot·后端·spring·java-ee·intellij-idea
无心水27 分钟前
22、Java开发避坑指南:日期时间、Spring核心与接口设计的最佳实践
java·开发语言·后端·python·spring·java.time·java时间处理
Rsun0455138 分钟前
SpringBoot + Cursor 最佳提示词工程手册
java·spring boot·后端