2015-01-13 63 views
0

莫名的多个实例,只是想知道如果任何人知道为什么我遇到过,或者如果它是一个已知的缺陷:的Tomcat 7 - 的单

我的应用程序采用嵌入式的Tomcat 7.0.39。我有一个遵循Josh Bloch的枚举单例模式的单例。在7.0.39之下,它确实是一个单例,即我可以验证只有一个实例被实例化。在我的pom.xml文件中,我只是升级到了7.0.57,并且我看到“单例”被实例化了两次。

这是怎么回事?!?

回答

0

一个singleton实际上只是每个类加载器的一个单例。对于Java EE容器(甚至像tomcat这样的servlet容器),每个Web应用程序(war)都有不同的类加载器。在停止/开始战争的情况下,您将会得到另一个类加载器,从而可能创建一个新的单例实例。