当前位置: 首页 > news >正文

在多线程中使用RequestScope的bean【最佳实践】

RequestScope确实很好用,你只要像下面的DefaultContext一样,写一个pojo类,然后加上这3个注解。

@Data
@Component
@ReuqestScope
public class DefaultContext {/*** 用户ID**/private Integer userId;/*** userAgent**/private String userAgent;
}

那么,你就可以在到处注入使用它了。

@Service
public class FooService {// 注入它private final DefaultContext context;public void barMethod() {log.info(context.userId);}
}

但是ReuqestScope的Bean在Spring中是一个由ThreadLocal持有的对象,仅在请求的线程中可用,存在以下2点局限性:

  1. 如果直接在请求线程的子线程中使用此Bean时,会产生No Thread-bound的错误。
  2. 即使你通过一定手段复用了请求主线程的上下文(RequestAttributes),一旦你的子线程还在运行,而请求已经完成,那么请求线程的RequestAttributes会失效,导致无法获取此Bean。

为了解决以上ReuqestScope的问题,在不侵入业务代码的情况下,可以采用如下方案。

// 太晚了,明天再写

http://www.dtcms.com/a/546594.html

相关文章:

  • 百度商桥怎么嵌入网站公司网站建设内部调查
  • AOI在FPC制造领域的检测应用
  • 沧州网站建设优化公司seo排名快速优化
  • 杭州网站优化咨询西安软件开发培训机构
  • 南宁论坛建站模板东营建设信息网网
  • AI+若依框架(实战篇)-后转
  • 备案号被取消 没有重新备案网站会被关闭吗域名怎么查
  • 网站建设需要什么书沧州市快伟网络科技有限公司
  • 专业建设网站外包河北承德建设工程信息网站
  • 网站栏目和版块的设计心得学做美食视频在哪个网站
  • Windchill10+html使用Lightbox轻量化wizard的配置
  • 番禺区住房和建设局网站wordpress crawling
  • 网站策划书包括哪几个步骤十堰优化网站哪家好
  • 04-函数与模块-导读
  • html5网站是用什么软件做的吗防疫网站网页设计
  • 【教学类-120-03】20251029十个数字横排1*10切割,5-35的边距,切割10次,手工挑选
  • 网站做联盟广告能赚钱吗个人网站 平台
  • 网站源码采集平面作品集展示图片
  • 建设网站需要什么要求小升初最好的补课机构排行榜
  • 做网站整理信息的表格wordpress企业建站
  • 济南网站建设询问企优互联价低个人网站设计内容和要求
  • Rust impl块的组织方式:从基础到实践的深度探索
  • 【AI WorkFow】n8n 源码分析-节点和工作流结构说明(二)
  • 仓颉线程池管理策略深度解析
  • 做网站域名的好处是什么wordpress安装不了插件
  • 做企划的网站山东网站建设哪里好
  • 网站自创汽车行业网站建设比较好
  • 揭阳网站制作服务龙岩正规全网品牌营销招商
  • 成都市网站建设哪家好怎么建设个人博客网站
  • wordpress没法做大网站wordpress 能承受多大并发访问