rjo*_*shi 5 java singleton absolute
在多个类加载器中使用时,我遇到了我的单例问题.例如,Singleton由多个EJB访问.有没有办法创建一个在所有类加载器中只有一个实例的单例?
我正在寻找使用自定义类加载器或其他方式的纯java解决方案.
唯一的方法是让你的单例类由一个类加载器加载 - 例如,将该jar文件放在bootclasspath中.
静态变量固有地绑定到类加载器,后者加载包含该变量的类.这就是它的工作方式.如果您只需要一个实例,则需要该类仅由一个类加载器加载.
JavaEE应用服务器通常通过将单例设置为"服务"来解决此问题,其确切的定义和配置取决于所讨论的应用程序服务器.
例如,在JBoss中,您可以使用xyz-service.xml描述符来设置挂起JNDI或JMX树的单例对象,并且您的应用程序组件(例如您的EJB)将从树中获取单例.这在某种程度上保护了您与底层的类加载器语义.
| 归档时间: |
|
| 查看次数: |
4472 次 |
| 最近记录: |