作用:代替ThreadLocal,因为ThreadLocal容易出现缓存问题,有时候可能会拿不到值,而Thread不会出现这种问题
1.导依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>transmittable-thread-local</artifactId>
<version>2.12.0</version>
</dependency>
2.使用
一般是创建一个上下文基类。里面创建一个静态的TransmittableThreadLocal类属性
public class BaseContext {
private static final TransmittableThreadLocal<String> transmittableThreadLocal = new TransmittableThreadLocal<>();
public static String getCurrentId() {
return transmittableThreadLocal.get();
}
public static void setCurrentId(String id) {
transmittableThreadLocal.set(id);
}
}
需要使用时直接BaseContext.get或者set就可以了