这是不是你可以配置和/或相关的应用程序服务器上?我想知道,如果当您重新部署应用程序单身的对象将被重建。

我宁愿在这里问和尝试,并得到了回答言简意赅不是随机谷歌搜索或诉诸阅读J2EE的Servlet规格 -

有帮助吗?

解决方案

没有,它会(至少没有应用服务器,我知道的)不是。 Servlet规范为您提供了了ServletContextListener 钩管理应用程序的生命周期。像JBoss一些应用服务器有单豆的特殊注解(@服务),以及EJB 3.1给你@Singleton注解。另一个要考虑使用的单身时会发生什么,当你的应用程序群集时,您将需要高可用性(HA)或使用复制的某种类型的,除非你使用一个无共享的办法。分布式高速缓存有利于这个原因。

其他提示

在短这个问题的答案是否定的。我不知道任何应用服务器,其行为这种方式。然而,有需要指出的几件事情。下面是一个简单的解释:

当应用程序服务器(即JBoss的瓦特/ Tomcat)的启动时,它在加载将被所有应用程序共享一个类装载一些类。当你部署应用程序,将这些类加载到其自己的类加载器。如果取消部署的应用程序,类加载器和它的所有类都将被垃圾收集。因此,当应用程序重新部署,所有的类都重新加载,你的单身将被重新实例。

您的应用程序将(在理论上,至少)行为相同的重新部署之后,作为一个JVM /应用服务器重启后。

只是一个最后提示:如果您想使用Singleton模式在企业Java应用程序,请确保您知道单一对象的应用服务器环境的限制。如果你想你的集群应用程序,你可以遇到的问题,例如。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top