threadLocal的运用

ops/2024/11/2 10:16:15/
 RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();//使用哪一个取决于springmvc在保存request信息时具体用的子类,他们通常无父子单独实现、//如果有父子可以继承第一个持有的httpServletRequestHttpServletRequest request = ((ServletWebRequest) requestAttributes).getRequest();//ServletRequestAttributes它是spring的具体保存的实例实现,通过名字和实现目的 接口是属性目的获取请求servlet
//        ServletRequestAttributes它是最上乘的类其他实现者以继承它保存的request并初始出自己的,并提供自己的get和setHttpServletRequest request1 = ((ServletRequestAttributes) requestAttributes).getRequest();HttpServletRequest request3 = ((StandardServletAsyncWebRequest) requestAttributes).getRequest();String requestURI = request.getRequestURI();String method = request.getMethod();System.out.println(requestURI+method);

抽象类 RequestContextHolder提供静态方法,获取全局的threadlocal对象,对象中存一个请求属性对象接口,该接口有多个实现类,提供顶层接口以外的附加功能,但在springMVC中把请求保存在当前线程的只会有一个实例实现,其他实例通过继承这个实例同样持有到属性接口实例持有的HttpServletRequest对象,通过 RequestContextHolder类为每一个请求到的线程中都加上一个缓存map,值的接口实例持有请求属性,由于是静态的属性所以所有线程可以使用设置自己的值,获取线程之间存值有交集

 private static final ThreadLocal<RequestAttributes> requestAttributesHolder = new NamedThreadLocal("Request attributes");private static final ThreadLocal<RequestAttributes> inheritableRequestAttributesHolder = new NamedInheritableThreadLocal("Request context");


http://www.ppmy.cn/ops/130396.html

相关文章

yocto如何获取现成recipes

在 OpenEmbedded 中查找特定的 recipes 可以通过以下几种方法&#xff1a; 1. 使用在线层索引网站&#xff1a; Layers.openembedded.org&#xff1a;这是一个常用的在线资源&#xff0c;您可以在该网站的相关页面中搜索特定的 recipes。 比如&#xff0c;访问 https://laye…

【网络】HTTP(超文本传输协议)详解

目录 引言一、HTTP的基本概念1.1 什么是HTTP&#xff1f;1.2 HTTP的工作流程 二、HTTP请求与响应2.1 HTTP请求格式2.2 HTTP响应格式 三、常见的HTTP状态码3.1 其他状态码示例 四、HTTP版本的演变4.1 HTTP/1.04.2 HTTP/1.14.3 HTTP/24.4 HTTP/3 五、HTTP的安全性5.1 HTTPS5.2 常…

高频电子线路---倍频器与振荡器

目录 倍频电路原理 丙类倍频器原理电路 问题: 提升滤波方法: 导通角 振荡器 振荡器基本工作原理 首先是怎么维持 那么如何振荡呢? 思考题: 组成要素 振荡器的起振条件 平衡条件 要点提示 稳定条件 振幅平衡 硬激励起振时: 稳定条件 相位平衡 倍频电路原理 简单原理 : …

微信小程序之流浪动物救助:爱与希望同行

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 &#x1f345;获取源码联系方式请查看文末&#x1f345; 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目…

springMVC中的请求拦截器

在Spring MVC中&#xff0c;请求拦截器&#xff08;Interceptor&#xff09;是一种可以用来拦截用户的请求&#xff0c;并进行一些预处理或后处理的机制。它主要用于实现诸如权限检查、记录日志、修改请求或响应等方面的功能。 要使用Spring MVC的拦截器&#xff0c;你需要创建…

Google推出了AI驱动的学习工具“Learn About”

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

C# 结构型设计模式----外观模式

1、简介 外观模式&#xff0c;顾名思义肯定是描述外在的一种表现&#xff0c;在人与人之间&#xff0c;外观的好坏体现在各自的长相以及穿着&#xff0c;气质等表现&#xff0c;而在系统设计之间&#xff0c;外观则是表现在系统的接口调用&#xff0c;调用接口的代码越简洁&…

ubuntu 异常 断电 日志 查看

sudo less /var/log/syslog 搜 Linux version