帮助我从并发视图理解JSF托管bean范围

帮助我从并发视图理解JSF托管bean范围,jsf,synchronization,managed-bean,Jsf,Synchronization,Managed Bean,有人能帮我从并发性的角度理解JSF托管bean范围吗 我的理解是: 一旦我在会话范围中定义了一个bean,这意味着:只有一个用户可以访问这个托管bean,所以不可能发生并发 此外,一旦我在请求范围中使用了bean,那么一旦请求启动,就会创建这个bean 一旦响应返回,该bean将被删除。(每个客户端都有此bean的不同副本) 此外,一旦我在none范围中使用了bean,那么一旦用户调用了bean,它就会被创建,并且在完成调用之后,bean就会被删除 但是一旦我在应用程序范围中有了一个bean,这

有人能帮我从并发性的角度理解JSF托管bean范围吗

我的理解是:

一旦我在会话范围中定义了一个bean,这意味着:只有一个用户可以访问这个托管bean,所以不可能发生并发

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

此外,一旦我在none范围中使用了bean,那么一旦用户调用了bean,它就会被创建,并且在完成调用之后,bean就会被删除

但是一旦我在应用程序范围中有了一个bean,这意味着多个客户端可以访问这个bean,所以 如果我有一个关键数据,它必须受到同步保护


非常感谢您的所有意见。

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

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


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

我认为您对每个范围的使用寿命的理解是正确的

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

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