Java-12a.Spring 中通过 TaskDecorator 配置默认异步线程池
前言
虽然在 SpringBoot 2.7.x 中已经有关于异步线程池的默认配置,但如果还是要自定义的需求,仍然值得学习了解一下。
例如:想要在多线程池中添加 traceId;使用 transmittable-thread-local
来代替默认的 ThreadLocal
。
多线程日志追踪工具类
MdcUtil
public class MdcUtil {
public static final String TRACE_ID = "traceId";
public static String generateTraceId() {
return UUID.randomUUID().toString().replace("-", "");
}
public static String getTraceId() {
return MDC.get(TRACE_ID);
}
public static void setTraceId(String traceId) {
MDC.put(TRACE_ID, traceId);
}
public static void setContextMap(Map<String, String> context) {
MDC.setContextMap(context);
}
public static void removeTraceId() {
MDC.remove(TRACE_ID);
}
public static void clear() {
MDC