club.zhcs.lina.trace.interceptor.TraceInterceptor Maven / Gradle / Ivy
The newest version!
package club.zhcs.lina.trace.interceptor;
import org.slf4j.MDC;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
import org.springframework.web.servlet.HandlerInterceptor;
import club.zhcs.lina.trace.Constants;
import club.zhcs.lina.trace.TraceIdUtil;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class TraceInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler)
throws Exception {
String traceId = request.getHeader(Constants.TRACE_ID);
if (traceId == null) {
traceId = TraceIdUtil.getTraceId();
}
MDC.put("traceId", traceId);
return true;
}
@Override
public void afterCompletion(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler, @Nullable Exception ex)
throws Exception {
MDC.remove(Constants.TRACE_ID);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy