package cn.autoform.util.thread; import java.util.LinkedHashMap; import java.util.Map; import cn.autoform.util.tool.ObjectUtil; import cn.autoform.web.interceptor.spring.InitParamInterceptor; import lombok.extern.slf4j.Slf4j; /** * 线程存储区 * @author WangYX * */ @Slf4j public class ThreadData { private ThreadData(){} private static final ThreadLocal> THREAD_DATA = new ThreadLocal>(); /** * 添加临时数据 * @Title: set * @Description: TODO[] * @param @param key * @param @param val 设定文件 * @return void 返回类型 * @throws */ public static void set(Keys key, T val){ if(THREAD_DATA.get() == null){ init(); set(key, val); }else{ THREAD_DATA.get().put(key, val); log.debug("向线程中添加key:'{}',val:''", key, val); } } /** * 初始化储存结构 * @Title: init * @Description: TODO[] * @param 设定文件 * @return void 返回类型 * @throws */ private static void init(){ THREAD_DATA.set(new LinkedHashMap<>()); } /** * 获得val * @Title: get * @param @param key * @param @param clazz * @param @param defaultValue * @param @return 设定文件 * @return T 返回类型 * @throws */ @SuppressWarnings("unchecked") public static T get(Keys key){ if(null != THREAD_DATA.get()){ T result = (T) THREAD_DATA.get().get(key); return ObjectUtil.empty(result) ? key.getDefaultValue() : result; }else{ return key.getDefaultValue(); } } public static void clear(){ if(THREAD_DATA.get() != null){ THREAD_DATA.get().clear(); } } }