利用ThreadLocal实现全局上下文工具类

这个博客介绍了如何利用ThreadLocal来实现一个全局上下文工具类,该类用于存储和检索对象,提供getValue、setValue、removeValue和reset等方法,确保在同一个线程中的数据隔离。
摘要由CSDN通过智能技术生成
/**
 * 全局上下文工具类,用于储存一些东西
 */
public class MyContext {
    private static final ThreadLocal<Map<Object, Object>> mycontext = new ThreadLocal<Map<Object, Object>>() {
        @Override
        protected Map<Object, Object> initialValue() {
            return new HashMap<Object, Object>();
        }

    };

    /**
     * 根据key获取值
     * @param key
     * @return
     */
    public static Object getValue(Object key) {
        if(mycontext.get() == null) {
            return null;
        }
        return mycontext.get().get(key);
    }

    /**
     * 存储
     * @param key
     * @param value
     * @return
     */
    public static Object setValue(Object key, Object value) {
        Map<Object, Object> cacheMap = mycontext.get();
        if(cacheMap == null) {
            cacheMap = new HashMap<Object, Object>();
            mycontext.set(cacheMap);
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值