在JSF应用程序中插入常用函数的最佳位置?

时间:2015-03-03 14:16:55

标签: jsf ejb cdi

有几个并发用户使用大型JSF应用程序。

应用程序获取PemGem空间错误,增加CPU使用(主要是由于gurbage收集)和RAM的利用率增加。我们需要在其他几个措施中优化代码库来克服这些问题。

该应用程序广泛使用很少的常用功能。我想知道哪个是包含这些函数以优化内存和CPU使用率的最佳位置。

示例函数(如果需要,我们可以简单地将它们转换为静态函数)

public long calculateAgeInDays(Date dob, Date toDate) {
    if (dob == null || toDate == null) {
        return 0l;
    }
    long ageInDays;
    ageInDays = (toDate.getTime() - dob.getTime()) / (1000 * 60 * 60 * 24);
    if (ageInDays < 0) {
        ageInDays = 0;
    }
    return ageInDays;
}

包含这些非常常见功能的最佳位置是什么。

  1. EJB - Singlton
  2. EJB - 无状态
  3. JSF Managed Beans(控制器) - 应用程序范围
  4. JSF Managed Beans(控制器) - 会话Scoped
  5. JSF托管Bean(控制器) - 请求范围
  6. 简单Java类
  7. 提前致谢

1 个答案:

答案 0 :(得分:1)

我会将这些方法保存为Util类中的静态方法。如果它们在整个应用程序中广泛使用,则没有理由将它们作为EJB或JSF bean的一部分保留。但是,不确定它对性能的影响。