package org.jeecg.config.mybatis; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import java.util.concurrent.ConcurrentHashMap; /** * @Description: 本地线程变量存储工具类 * @author: lsq * @date: 2022年03月25日 11:42 */ public class ThreadLocalDataHelper { /** * 线程的本地变量 */ private static final ThreadLocal REQUEST_DATA = new ThreadLocal<>(); /** * 存储本地参数 */ private static final ConcurrentHashMap DATA_MAP = new ConcurrentHashMap<>(); /** * 设置请求参数 * * @param key 参数key * @param value 参数值 */ public static void put(String key, Object value) { if(ObjectUtil.isNotEmpty(value)) { DATA_MAP.put(key, value); REQUEST_DATA.set(DATA_MAP); } } /** * 获取请求参数值 * * @param key 请求参数 * @return */ public static T get(String key) { ConcurrentHashMap dataMap = REQUEST_DATA.get(); if (CollectionUtils.isNotEmpty(dataMap)) { return (T) dataMap.get(key); } return null; } /** * 获取请求参数 * * @return 请求参数 MAP 对象 */ public static void clear() { DATA_MAP.clear(); REQUEST_DATA.remove(); } }