线程封闭一般通过以下三个方法:
1.Ad-hoc线程封闭:程序控制实现,最糟糕,忽略
2.堆栈封闭:局部变量,无并发问题
3.ThreadLocal线程封闭:特别好的封闭方法
方法2是最常用的,变量定义在接口内,本文主要讲解方法三。
本例程是基于SpringBoot框架,并使用两个拦截器,分别为Filter和HandlerInterceptorAdapter
第一步,先定义拦截器继承Filter接口,实现ThredLocal.add()方法
第二步,在Application类实现Filter接口拦截/threadLocal/*的URL
第三步,封装ThredLocal的方法
第四步,实现另外个更细粒度的拦截器,HandlerInterceptorAdapter,调用ThredLocal.remove()方法
第五步,定义调用接口
第一步,先定义拦截器,比如拦截特定的URL
/*
*Created by William on 2018/4/30 0030
* 拦截器
*/
@Slf4j
public class HttpFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}