2011-03-17 39 views
1

嗨我有一个关于构建JSF Web应用程序的最佳做法vs安全编程的问题。JSF Web应用程序 - 使用静态方法的DAO层

我有employee.xhtml有支持Bean的页面 - EmployeeBean。我在后台bean中声明的所有变量都是非静态的,并具有getter和setter方法。例如:

ArrayList <Employee> alEmployees = new ArrayList<Employee>(); 
int userId; 

BackingBean的构造函数加载员工。我通过在委托中调用一个静态方法来达到这个目的。

userId = //some value. 
alEmployees = EmployeeDelegate.loadEmployees(userId); 

Delegate方法调用DAO类中的静态方法。

当n个用户同时使用应用程序时,静态方法是否会导致任何数据并发问题?我的意思是userId 56看到userId 75列表时,当两者都在同一时间使用应用程序? 在Delegate和DAO层中有静态方法真的是明智的吗?

如果我不清楚,请让我知道。

感谢

回答

1

如果EmployeeDelegate确实持有任何类变量是引起方法调用和/或对方法的行为影响的变化很敏感,那么它是安全的这样做。

然而,你有这种方法的另一个主要问题。该代表应该是interface,以便您可以轻松地用不同的实现替换它。这种方法表明委托并不是一个接口(因为它不可能有静态方法)。

+0

删除没有任何类变量。 代表只是一个班级。所以我很安全。 谢谢BalusC。 – SDP 2011-03-17 18:45:30

相关问题