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;
    }
}
相关推荐
yyk的萌12 小时前
Spring AI + 智谱大模型实战:打造有记忆功能的智能天气助手
java·人工智能·spring·agent·spring ai
被开发耽误的大厨12 小时前
5、Integer缓存池里同一个对象指的是什么?Integer 和String 内存结构逻辑完全一样?
android·java·哈希算法
升鲜宝供应链及收银系统源代码服务12 小时前
管理类软件通用高级查询组件(一)---升鲜宝生鲜配送供应链管理软件重构方案
java·重构·生鲜配送源代码·供应链源代码·生鲜供应链源代码
jerryinwuhan13 小时前
Spark SQL 详细讲义
大数据·sql·spark
工业甲酰苯胺13 小时前
Tomcat的事件监听机制:观察者模式
java·观察者模式·tomcat
QC班长20 小时前
Maven公司私库配置踩坑点
java·服务器·maven·intellij-idea
Makoto_Kimur20 小时前
java开发面试-AI Coding速成
java·开发语言
河阿里21 小时前
SQL数据库:五大范式(NF)
数据库·sql·oracle
wuqingshun31415921 小时前
说说mybatis的缓存机制
java·缓存·mybatis
空中海21 小时前
Kubernetes 生产实践、可观测性与扩展入门
java·贪心算法·kubernetes