同一个单例类打包在两个war文件中(并且两个war文件都打包在
一只耳朵文件)
Cas1
我的理解
根据我对单例类的理解,每个 JVM 将有一个实例。所以根据上面的这个答案应该是一个实例
因为ear文件将有一个jvm实例。
案例2
但是在不同的站点上(一个在 http://www.coderanch.com/t/520891/java/java/Singleton-Diff-WAR-files-same ),人们还提到了单例生产
类加载器的单个实例。他们说对于两个 war 文件将有两个类加载器。所以会有两个单例实例。
正确答案是什么?
如果第二种情况是正确的,我们可以在下面说
1)对于单例类,每个类加载器将有一个实例(这里我指的是包含引导加载程序的 jvm 实例中的类加载器租用,
应用程序类加载器)不适用于 jvm。
2)对于打包在同一个ear文件中的两个war文件,同一个jvm实例下会有两个classloaderhirerchies
发表于 http://forums.oracle.com/forums/thread.jspa?threadID=2253940&tstart=0但不是具体的答案
最佳答案
1) 如果您的类在每个 WAR 中,那么每个 webapp 都会有一个实例(类加载器层次结构)。
2) 是的。
关于java - 当同一个单例类打包在两个war文件中时,可能没有实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6722927/