Java使用ThreadLocal保存全局变量
代码
import com.alibaba.fastjson.JSONObject;
public class ContextHolder {
/**
* 使用ThreadLocal维护变量,ThreadLocal为每个使用该变量的线程提供独立的变量副本,
* 所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。
*/
private static final ThreadLocal<JSONObject> CONTEXT_HOLDER = new ThreadLocal<>();
/**
* 设置
*/
public static void setContextHolder(JSONObject jsonObject) {
CONTEXT_HOLDER.set(jsonObject);
}
/**
* 获取
* @return
*/
public static JSONObject getContextHolder() {
return CONTEXT_HOLDER.get();
}
/**
* 清空
*/
public static void clearContextHolder() {
CONTEXT_HOLDER.remove();
}
}