项目上用到 ThreadLocal 来存放用户相关信息,它可以搭配拦截器使用。
用户登录之后,会生成token,token里面也存放一些基本的用户信息,比如用户ID什么的这些唯一标识,通过这个标识能找到当前用户的所有信息,如果使用了redis,这些信息可以从redis里面获取(用户登录的时候信息存入到redis),将这些信息拿到后存放到ThreadLocal里面,这能保证一条线程能调用这些信息,并且不会对其他线程造成影响。拦截器是拦截每一条请求,如果能通过,表示携带了用户信息,那这些信息这条线程便通用。