代码之家  ›  专栏  ›  技术社区  ›  GreenieMeanie

服务于web应用程序的JVM在重新部署到应用程序服务器时是否会重新启动?

  •  2
  • GreenieMeanie  · 技术社区  · 16 年前

    这是您可以配置和/或依赖于您的应用程序服务器的吗?我想知道在重新部署应用程序时是否会重建单例对象。

    2 回复  |  直到 11 年前
        1
  •  1
  •   Alexander Torstling    16 年前

    ServletContextListener 挂钩来管理应用程序生命周期。一些应用服务器,如JBoss,对单例bean(@Service)有特殊的注释,EJB 3.1为您提供了@singleton注释。使用单例时需要考虑的另一件事是,当您对应用程序进行集群时,您将需要高可用性(HA)或使用某种类型的复制,除非您使用无共享方法。出于这个原因,分布式缓存是好的。

        2
  •  1
  •   Bent André Solheim    16 年前

    当您的应用程序服务器(即JBoss w/Tomcat)启动时,它会在类加载器中加载一些类,这些类将由所有应用程序共享。当它部署应用程序时,它会将这些类加载到自己的类加载器中。当您取消部署应用程序时,该类加载器及其所有类都将被垃圾回收。因此,当重新部署应用程序时,您的所有类都会被重新加载,您的单例将被重新实例化。

    重新部署后,您的应用程序(至少在理论上)的行为将与JVM/application Server重启后相同。

    推荐文章