考虑以下几点:support.jarJavaEE的模块类加载和静态变量
public class SupportUtil{
private static Map<String, Resource> myResources;
void init(){
initResources();
}
}
然后我有2个独立战争应用程序相同的JavaEE服务器(当前使用wildfly 8)内远程conneting到另一个EJB模块
war1 -> lib/support.jar
war2 -> lib/support.jar
ejb1 -> ear-lib/support.jar
我的问题是,基于组件的类加载架构,将三个模块看到相同的地图关为MyResources(考虑到这是一个类变量,类变量是由所有实例共享)
我需要澄清,对于野蝇或glassfish,classloading会如何影响这种行为。
一旦这个类已经被加载,静态的myResources将会与它一起被加载,并且它的相同副本将会与你所有的模块共享,直到有类的引用。 – 2014-09-20 09:43:19
@DarshanLila会为这三个模块加载SupportUtil的同一个类加载器(读取ModuleClassLoader的相同实例)吗?请记住,这些是独立的部署单元。 – maress 2014-09-20 09:52:15