ThreadLocal
ThreadLocal并不是一个Thread,而是Thread的局部变量。
ThreadLocal为每个线程提供一个单独的存储空间,具有线程隔离效果,只有在线程内才能获取对应的值,线程外不能访问。
在Tomcat中每次请求都会开辟一个不同的线程。这里我们可以使用
System.out.println(Thread.currentThread().getId());
来观察线程,每一次发送请求,jwt检验处,controller/service层都会使用相同的线程,但是一旦再次发送请求,线程就会转变
ThreadLocal有三个常用方法:set/get/remove
在mybatis分页插件的page中有下面一方法,就是使用了threadlocal。通过这个对象把page与pagesize存在空间内,在后面动态取出并拼接
protected static final ThreadLocal<Page> LOCAL_PAGE = new ThreadLocal();
protected static void setLocalPage(Page page) { LOCAL_PAGE.set(page); }

浙公网安备 33010602011771号