美文网首页
ThreadLocal工具类封装

ThreadLocal工具类封装

作者: 若愚同学 | 来源:发表于2019-04-26 18:20 被阅读0次

原理可以看这篇文章,这里只封装工具类

ThreadLocal使用及原理解析

package com.sjmama.ucenter.utils;

import lombok.experimental.UtilityClass;

import java.util.HashMap;
import java.util.Map;


@UtilityClass
public class ThreadLocalUtils {

    /*使用常量定义一个key*/
    public static final String  USER_KEY = "USER_KEY";

    private static final ThreadLocal<Map<String, Object>> THREAD_LOCAL = new ThreadLocal<>();

    /**
     * 存储
     *
     * @param key
     * @param value
     * @return void [返回类型说明]
     * @author nijia
     * @see [类、类#方法、类#成员]
     */
    public static void put(String key, Object value) {
        Map<String, Object> map = THREAD_LOCAL.get();
        if (map == null) {
            map = new HashMap<>();
        }
        map.put(key, value);
        THREAD_LOCAL.set(map);
    }

    /**
     * 取值
     *
     * @param key
     * @return T [返回类型说明]
     * @returnt
     * @author nijia
     * @see [类、类#方法、类嗯#成员]
     */

    public static <T> T get(String key) {
        Map<String, Object> _map = THREAD_LOCAL.get();

        if (_map != null) {
            return (T) _map.get(key);

        }

        return null;
    }

    public static void release() {
        THREAD_LOCAL.remove();
    }

}

相关文章

网友评论

      本文标题:ThreadLocal工具类封装

      本文链接:https://www.haomeiwen.com/subject/pqwqnqtx.html