在多个类装入器中使用时,我的单例遇到了问题。例如,由多个EJB访问的Singleton。有什么方法可以创建一个在所有类加载器中只有一个实例的单例吗?

我正在寻找使用自定义类加载器或其他方法的纯Java解决方案。

最佳答案

唯一的方法是使您的单例类由单个类加载器加载-例如,将该jar文件放入bootclasspath中。

静态变量固有地与加载包含该变量的类的类加载器绑定(bind)。这就是它的工作方式。如果绝对需要一个实例,则只需要由一个类加载器加载该类。

10-05 21:25