当同一个单例类被打包在两个war文件中时,可能存在的实例数



当同一个单例类打包在两个war文件中(并且两个war文件都打包在一个war文件中),可以有多少个实例一个耳朵文件)

Cas1

MyUnderstanding根据我对单例类的理解,每个JVM将有一个实例。所以根据这个答案,上面应该是一个例子因为ear文件将有一个JVM实例。

病例2

但是在不同的网站上(一个在http://www.coderanch.com/t/520891/java/java/Singleton-Diff-WAR-files-same),人们也提到了单例产品类装入器的单个实例。他们说对于两个war文件会有两个类加载器。所以会有两个singleton实例

正确答案是什么?

如果第二个情况是正确的,我们是否可以说下面的语句

1)对于单例类,每个类加载器将有一个实例(这里我指的是jvm实例中的类加载器层次结构,包括引导加载器,

2)对于打包在同一个ear文件中的两个war文件,在同一个jvm实例下将有两个类加载器层次

张贴在http://forums.oracle.com/forums/thread.jspa?threadID=2253940&tstart=0,但没有具体的答案

1)如果你的类在每个WAR中,那么每个webapp将有一个实例(类加载器层次结构)。

2)是的。

最新更新