线程封闭
把对象封装到一个线程里,只有这一个线程能看到这个对象。所以即使这个对象不是线程安全的,也不会出现线程安全的问题了。

创建类RequestHolder,
定义一个静态成员变量
ThreadLocal requestHolder = new ThreadLocal<>();
并定义三个方法,add(),getId(),remove(),分别表示想requestHolder 中添加对象,获取对象,移除对象

定义Filter

定义Interceptor

将Filter和Interceptor 注入

测试代码:

执行结果:

日志:

代码git地址:
https://gitee.com/nannirongrong/concurrency.git