首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring:` `RequestScope`‘vs ` `RequestContextHolder`’

Spring:` `RequestScope`‘vs ` `RequestContextHolder`’
EN

Stack Overflow用户
提问于 2021-01-13 17:56:52
回答 1查看 274关注 0票数 1

我正在编写Spring服务,并希望包括控制器可以使用的某种形式的RequestContext,这些控制器可以存储诸如经过身份验证的用户和请求id之类的内容。然而,我看到了多种方法:

使用ServletRequest.setAttribute

  • Use Spring RequestContextHolder

  1. 使用@RequestScope bean

这些方法之间的权衡是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-13 18:14:24

广义地说,RequestScope是春天的神奇之道。它在内部使用RequestContextHolder,而后者又依赖于ServletRequest.setAttribute。换句话说,春天的方式,是IMHO的RequestScope。如果您喜欢限制Spring注释的魔力,那么RequestContextHolder是有意义的。最后,ServletRequest.setAttribute仍然是较低的级别,如果您希望代码与非Spring应用程序兼容,则应该主要使用它。

此外,对于前两种方法,Spring使用一个线程作用域对象来存储对请求上下文的引用,这允许程序员访问bean,即使在没有明确接收请求对象的方法中也是如此。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65707326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档