代码之家  ›  专栏  ›  技术社区  ›  Markos Fragkakis

J2EE:单例vs保持会话

  •  3
  • Markos Fragkakis  · 技术社区  · 14 年前

    什么时候应该在会话中保留一个对象(即应用程序范围的属性文件),而不是创建一个单例来保留它?什么时候应该使用这些方法?

    注:

    3 回复  |  直到 14 年前
        1
  •  9
  •   BalusC    14 年前

    如果它应该是应用程序范围的,那么您不应该将它存储在会话范围中,而应该存储在应用程序范围中。在会话作用域中存储时,不必要地为每个访问者复制相同的数据。也完全不需要一个单例,只需在服务器启动时借助 ServletContextListener ServletContext#setAttribute() .

        2
  •  2
  •   Mike Baranczak    14 年前

    至于独生子女,这取决于你所说的独生子女是什么意思。如果您有一个带有@Singleton注释的EJB,那么这很好(其他依赖注入提供程序也可能支持这种模式)。

        3
  •  2
  •   Community CDub    8 年前

    注意:我正在集群环境中工作,如果这有什么不同的话。

    我不反对什么 Mike BalusC 我已经写过了,但我觉得您正在进入一个实现细节很重要的领域。您做什么以及如何做将取决于后端服务、什么类型的集群以及应用程序需求。我认为这个问题太宽泛了,无法给出具体的答案。

    Furthermore...

    所有javaee概要文件都共享一组公共特性,例如命名和资源注入、打包规则、安全要求等。这保证了javaee平台下的所有产品和间接应用程序的一致性。这还确保熟悉某个概要文件或完整平台的开发人员可以轻松地转到其他概要文件,避免技能和经验的过度划分。

    推荐文章