何时使用 Spring Prototype vs Request vs Session 范围?任何现实生活中的例子
Posted
技术标签:
【中文标题】何时使用 Spring Prototype vs Request vs Session 范围?任何现实生活中的例子【英文标题】:When to use Spring Prototype vs Request vs Session scope? Any real life example 【发布时间】:2020-05-12 13:59:10 【问题描述】:我想知道什么时候应该在 Spring 中准确地使用 prototype、request 和 session 范围?我知道如果请求 bean,singleton 返回相同的对象实例。
那我们为什么要考虑其他弹簧范围呢?
通过示例进行解释将有助于理解对它的需求。
【问题讨论】:
【参考方案1】:下面是对 Spring bean 作用域的解释以及相关示例:
原型
What-> 它每次为每个请求提供不同的实例 当-> 你的 bean 包含一个你想要保持隔离的状态(即对象属性),并且你想确保它不会在下一个请求中被重用
请求
What-> 它每次为每个 HTTP 请求提供不同的实例,仅在 Web 应用程序的上下文中可用 When-> 你的 bean 对传入的实体(即 Product 对象)建模,你需要在该 Web 请求中捕获和处理它
会话
什么-> 它为每个 HTTP 会话提供不同的实例,仅在 Web 应用程序的上下文中可用 当-> 与特定用户关联的本地缓存时,例如 ShoppingBasket 或 UserSession,您通常将其称为有状态应用程序
【讨论】:
以上是关于何时使用 Spring Prototype vs Request vs Session 范围?任何现实生活中的例子的主要内容,如果未能解决你的问题,请参考以下文章
何时使用 Spring @Async vs Callable 控制器(异步控制器,servlet 3)
spring cloud config server vs consul的区别?