如何在JBoss中获取单例实例?

时间:2011-06-10 22:48:09

标签: java singleton jetty jboss5.x application-server

我有一个单例,我必须在我的过滤器中实例化,由于某种原因,我不能在第一次尝试时得到它的实例。 (部署在JBoss EAP 5.1中的应用程序)同样的解决方案没有修改,可以很好地与Jetty应用程序服务器配合使用。非常感谢您的回答。

此致

罗马

2 个答案:

答案 0 :(得分:1)

如果您不想使用任何依赖注入框架(Spring,Guice),请以旧时尚方式进行:

安装ServletContextListener

contextInitialized(ServletContextEvent sce)方法中创建您的单身人士并将其作为属性存储在ServletContext

当您的过滤器初始化时,您应该能够从过滤器init method

中的ServletContext界面内传递的FilterConfig获取该单例实例

答案 1 :(得分:1)

为什么过滤器中需要单例?您可以使用Web应用,会话和请求上下文放入您希望的任何数据。

那就是说,在没有看到你的代码的情况下,你有100%的可能使用类静态变量来保存实例吗?如果是,请注意类是由类加载器确定的,这也是为什么在应用程序服务器中使用这样的习惯是个坏主意的原因之一(这几乎可以保证使用类加载器层次结构实现)等.JBoss和Jetty显然有不同的方法。