You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring中请求作用域Bean注入单例@RestController的原理

单例@RestController注入请求作用域Bean的实现原理
  • Spring靠动态代理解决单例Bean注入请求作用域Bean的矛盾:当你在单例@RestController里用@Autowired注入请求作用域的RequestContext时,Spring不会直接注入真实的RequestContext实例,而是注入一个代理对象。
  • 当Controller处理HTTP请求时,这个代理对象会自动关联当前请求的上下文:它会从Spring维护的请求作用域缓存中,获取或创建属于当前请求的RequestContext实例。
  • 并发场景下(比如5个请求同时处理),每个请求对应的线程都会通过代理拿到自己专属的RequestContext:Spring内部用ThreadLocal把请求作用域Bean和当前线程绑定,所以每个线程访问代理时,都会拿到和自身线程绑定的Bean实例,互不干扰。
  • 代理对象本身是单例的,和Controller实例共存;而真实的RequestContext实例会随着请求的创建而生成,请求结束后被销毁,完全符合请求作用域的定义。

内容的提问来源于stack exchange,提问作者mipo256

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 21:52:02