【问题标题】:Help me to understand JSF managed bean scope from concurrency view帮助我从并发视图理解 JSF 托管 bean 范围
【发布时间】:2011-10-24 21:27:23
【问题描述】:

谁能帮助我从并发的角度理解 JSF 托管 bean 范围?

我的理解:

一旦我在会话范围内有一个 bean,这意味着:只有一个用户可以访问这个托管 bean,因此不可能发生并发。

另外,一旦我在请求范围内使用了一个 bean,那么一旦发起请求,这个 bean 就会被创建 一旦响应返回,该 bean 将被删除。 (每个客户端都有这个 bean 的不同副本)

此外,一旦我在 none 范围内使用 bean,一旦用户调用该 bean,它将被创建,完成调用后,该 bean 将被删除。

但是一旦我在应用程序范围内有一个 bean,这意味着多个客户端可以访问这个 bean,所以 如果我有重要数据,则必须通过同步来保护它。

我们非常感谢您的所有意见。

【问题讨论】:

    标签: jsf synchronization managed-bean


    【解决方案1】:

    我认为您对每个示波器的使用寿命的理解都很好。

    但是,我认为您对何时应用同步的理解并不好。每当您需要在某个范围内同步 bean 的方法时,这通常表明 bean 的范围对于它所保存的数据来说太宽了。然后您应该将 bean 放在更窄的范围内,或者将数据移动到更窄范围内的另一个 bean 中,这样就不需要同步了。

    您应该将请求范围内的数据(展示数据、同步表单数据等)放入请求范围内。您应该将视图范围的数据(异步表单数据、rendered 属性条件、“隐藏”值等)放在视图范围中。您应该将会话范围的数据(登录用户、用户首选项、用户特定数据等)放在会话范围中。您应该将应用程序范围的数据(全局下拉列表值、配置设置等)放在应用程序范围内。

    【讨论】:

      猜你喜欢
      • 2010-12-21
      • 1970-01-01
      • 2013-01-15
      • 1970-01-01
      • 2012-10-11
      • 2011-09-24
      • 2012-04-16
      • 2016-05-02
      • 2012-02-02
      相关资源
      最近更新 更多