使用 ThreadLocal 存储用户信息
由于目前的 web 应用,几乎都是线程多路复用,同一时间的用户请求都在独立的线程中。所以可以把用户信息存储在 ThreadLocal 中,减少引用对象的传递。
实现 UserContext
public class UserContext {
private static final ThreadLocal<User> local = new ThreadLocal<User>();
public static void set(User user){
local.set(user);
}
public static User get(){
return local.get();
}
public static void remove(){
local.remove();
}
}