我们发现 每一个控制方法中都需要解析token , 获取当前用户id , 代码重复度比较高
也就是每次请求都会获取解析token 很麻烦
基于ThreadLocal + 拦截器的形式统一处理
拦截器
是一种动态拦截方法调用的机制;
类似于Servlet 开发中的过滤器Filter,用于对处理器进行前置处理和后置处理。
threadlocal
线程内部的存储类,赋予了线程存储数据的能力。
线程内调用的方法都可以从ThreadLocal中获取同一个对象。
多个线程中ThreadLocal数据相互隔离
Threadlocal使用方法很简单
ThreadLocal<T> threadLocal = new ThreadLocal<T>();
threadLocal.set() //将数据绑定到当前线程
threadLocal.get() //从当前线程中获取数据
Thread工具类
import com.tanhua.domain.User;
/**
* Created with IntelliJ IDEA.
*
* @Author:
* @Date:
* @Message: Talk is cheap. Show me