【发布时间】:2016-05-02 18:48:54
【问题描述】:
我正在使用 Mojarra 2.2.12,在我们的项目中,我们有一些 @ApplicationScoped bean。例如:
@ManagedBean
@ApplicationScoped
public class AppScopedBean{
private int commonValueForClients;
//GET, SET
public void evalNew(){
int newCommonVal;
//Evaluation of the new value, doesn't depend on the commonValueForClients
commonValueForClients = newCommonVal;
}
}
我的问题是我们应该担心新分配值的可见性吗?
我在the spec 中找不到JSF 基础结构必须同步对@ApplicationScoped bean 字段的访问。那么,特别是对于 Mojarra 2.2.12,我们应该将该字段声明为 volatile 还是显式同步对它的访问?
【问题讨论】:
-
在我看来,您选择了错误的 bean 范围。无法选择特定托管 bean 的正确范围将导致严重的痛苦和痛苦。
-
@Tiny 也许,我认为缓存严格来说并不适合托管 bean。这更像是一种服务目的。
标签: jsf jsf-2 concurrency managed-bean application-scope