2015-01-13 61 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)都有不同的類加載器。在停止/開始戰爭的情況下,您將會得到另一個類加載器,從而可能創建一個新的單例實例。