ThreadLocal应用之一-----利用拦截器或过滤器设置请求上下文

本文详细介绍了ThreadLocal的工作原理,通过分析源码揭示ThreadLocal如何在线程安全地存储和获取数据。针对误解,解释了ThreadLocal实例虽静态,但每个线程拥有独立的存储Map,确保了线程间数据隔离。文中还探讨了在拦截器中使用ThreadLocal设置请求上下文的方法。
摘要由CSDN通过智能技术生成

之前一直使用ThreadLocal进行请求上下文的设置,只知道ThreadLocal是线程安全的每个线程获取的是本线程所对应的值,没有去深入了解ThreadLocal的具体实现,现在翻看转载的博客并参照源码,彻底明白了其原理,记录如下。

ThreadLocal存取原理分析

先看如下业务代码:


/**
 * 应用基本上下文
 * @author rambo.pan
 */
public class HttpContext {
   
    /**
     * 静态变量,作为各个线程中的Map的key,每个HttpContext实例为相应的value
     */
    private static final ThreadLocal<HttpContext> currentContext = new ThreadLocal<HttpContext>();

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值