ThreadLocal一般用于某一个线程会话中,用来存储当前线程的数据
记录工具类,如下:
/**
* 本地线程工具类
*/
public class ThreadCache {
/** 本地线程实例 */
private static final ThreadLocal<ThreadContext> THREAD_CACHE = new ThreadLocal<ThreadContext>() {
@Override
protected ThreadContext initialValue() {
return new ThreadContext();
}
};
/**
* 内部类: 存储信息
*/
private static class ThreadContext {
/** 定义属性. */
String userName;
……
}
/**
* 存储示例
*/
public void setUserName(String userName){
THREAD_CACHE.get().userName = userName;
}
/**
* 取值示例
*/
public String getUserName(){
return THREAD_CACHE.get().userName;
}
/**
* 释放本地线程
*/
public static void release() {
THREAD_CACHE.remove();
}
}