只是想知道是否有人知道我为什么会遇到这种情况,或者它是否是一个已知的缺陷:
我的应用使用嵌入式Tomcat 7.0.39。我有一个遵循Josh Bloch的枚举单身模式的单身人士。在7.0.39下,它确实是一个单例,即我可以验证只实例化了一个实例。在我的pom.xml文件中,我只是升级到7.0.57,我看到“singleton”被实例化了两次。
这是怎么回事?!?
答案 0 :(得分:0)
单例实际上只是每个类加载器的单例。对于Java EE容器(甚至像tomcat这样的servlet容器),每个Web应用程序都有一个不同的类加载器(war)。在你停止/开始战争的情况下,你将得到另一个类加载器,导致可能创建单例的新实例。