【问题标题】:Use cases of Request and Session scoped beans请求和会话范围 bean 的用例
【发布时间】:2011-12-15 08:59:54
【问题描述】:

有人可以列出 Request 、 Session 和 Global-Session 范围 bean 的实际用例吗?在大多数项目中,我一直在使用单例和原型。我知道请求范围 bean 是按请求实例化的,并且在会话范围 bean 中,bean 是在会话开始时实例化的。

请大家多多指教。

【问题讨论】:

    标签: spring spring-mvc


    【解决方案1】:

    到目前为止,我们使用 request scoped beans 来获取应该只在一个页面上有效的信息,例如搜索结果或订单确认。在重新加载页面之前,该 bean 将一直有效。

    会话范围的 bean 可用于在会话关闭(超时或注销)时使身份验证信息失效。您也可以在此处存储您不想在每个请求中重新加载的其他用户信息。或者我们的另一个用例是在会话范围中存储一个对话范围,我们使用它来在请求之间保留信息,但我们可以分配一个自定义超时和失效条件。

    几乎所有需要在请求后可用的信息都需要存储在会话范围内。我们使用的唯一例外是 视图范围,它将信息存储在页面的视图映射中,以便在 ajax 请求后可用,例如在向导中。

    然而,单例范围意味着该信息在每个应用程序中仅存在一次,因此如果两个用户请求您的页面,他们将访问相同的信息。这对控制器很有用,因为它们不应该存储数据。

    原型作用域与使用 new 初始化对象相同,因为它是在每次注入时创建的。我们目前根本不使用它。

    【讨论】:

    • 谢谢@Pete,我会再给这个时间,让更多的 cmets 进来。
    猜你喜欢
    • 2012-05-26
    • 2023-04-10
    • 1970-01-01
    • 2012-01-20
    • 2013-08-26
    • 2011-09-02
    • 2014-12-02
    • 2012-01-07
    • 1970-01-01
    相关资源
    最近更新 更多