ThreadLocal 问题

@RestController

public class testThreadlocal {

public static ThreadLocal<Integer> local = new ThreadLocal<>();
int cc=0;
@GetMapping("cl")
public  int  a(){
    local.set(cc);
  int  lc=local.get()+11;

    System.out.println(local.get());
    return lc;
}

@GetMapping("cl2")
public  int  a2(){

    int  lc=local.get()+131;

    System.out.println("a");
    return lc;
}

@GetMapping("cl3")
public  int  a3(){

    System.out.println("a");
    return local.get();
}

}

分别用2个页面访问cl/cl2, 为什cl2访问会出现 local.get()空指针

ThreadLocal 是与当前线程绑定的,多次请求时用的线程并不是同一个,自然无法获取存入的值。
对于Tomcat等框架,每次请求都会重新分配一个线程去处理。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^