JSF Web应用程序-DAO层与静态方法

时间:2011-03-17 15:30:37

标签: jsf methods static dao

您好我在构建JSF Web Applicaiton时遇到了关于最佳实践与安全编程的问题。

我有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 个答案:

答案 0 :(得分:1)

如果EmployeeDelegate 保留任何对方法调用引起的更改敏感的类变量和/或对方法的行为方式有影响,那么这样做是安全的。< / p>

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