All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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