您认为将所有广泛使用的实用程序方法放在应用程序范围的bean中是一个好主意吗?
在当前执行的应用程序我的工作,所有的实用方法(用绳子,饼干操纵,检查URL,检查当前的页面,用户等)都放在一个大的请求范围豆,他们是从引用每个xhtml页面.
如果将实用程序方法放在应用程序作用域中的方法是一个好的或坏的选择,我找不到有关stackoverflow的任何信息.
为什么我遇到这个想法是需要在范围更广的bean中重用那些方法,然后再使用请求范围的bean(如视图或会话范围的bean).如果我错了,请纠正我但是你应该总是注入相同或更宽的范围bean,即你不应该在视图范围内注入请求范围的bean.
我想使用的实用方法,从应用范围的bean应该是有益的(不会有任何新对象的创建,一个对象将被创建并在所有应用重复使用),但我仍然想确认或如果有人告诉我这是一种错误的方法,为什么是错的.
我在下面的博客中看到了"应用程序"范围.这是真的吗?
因为,根据我的冲浪,我知道spring只有5个以下的范围.如果我错了,请纠正我.
我正在使用Mojarra 2.2.12,在我们的项目中我们有一些@ApplicationScoped豆子.例如:
@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;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我们应该担心新指定值的可见性吗?
我在规范中找不到JSF基础结构必须同步访问@ApplicationScopedbean字段.因此,特别是对于Mojarra 2.2.12,我们应该将字段声明为volatile或明确地同步对它的访问吗?