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;
    }
}
相关推荐
野生技术架构师2 分钟前
【面试题】为什么 Java 8 移除了永久代(PermGen)并引入了元空间(Metaspace)?
java·开发语言
Leo July2 分钟前
【Java】Java设计模式实战指南:从原理到框架应用
java·开发语言·设计模式
Anastasiozzzz5 分钟前
力扣hot100 20.有效的括号 解析
java·算法·面试·力扣
brave_zhao9 分钟前
如何解决 Spoon 与 Carte 互联的 UTF-8 编码问题
java
重生之我是Java开发战士18 分钟前
【数据结构】Map、Set与哈希表底层原理
java·数据结构·散列表
L.EscaRC26 分钟前
深度解析 Spring 框架核心代理组件 MethodProxy.java
java·开发语言·spring
拽着尾巴的鱼儿28 分钟前
Spring 缓存 @Cacheable 实现原理
java·spring·缓存
dabidai28 分钟前
JSR-250JavaEE规范
java
Jackson@ML28 分钟前
2026最新版IntelliJ IDEA安装使用指南
java·ide·intellij-idea
逍遥德34 分钟前
函数式编程 Java Lambda Stream及其实现类常用函数
java·后端·spring