【问题标题】:JSF Web application -DAO layer with static methodsJSF Web 应用程序 - 带有静态方法的 DAO 层
【发布时间】:2011-03-17 15:30:36
【问题描述】:

您好,我有一个关于构建 JSF Web 应用程序的最佳实践与安全编程的问题。

我有 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 层中使用静态方法真的可取吗?

如果我不清楚,请告诉我。

谢谢

【问题讨论】:

    标签: jsf methods static dao


    【解决方案1】:

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

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

    【讨论】:

    • Delete 没有任何类变量。代表只是一个类。所以我很安全。谢谢BalusC。
    猜你喜欢
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 2011-12-13
    • 2014-02-27
    • 2011-09-24
    • 2013-12-22
    相关资源
    最近更新 更多