访问CDI扩展中的ServletContext资源

时间:2011-03-31 12:33:04

标签: java servlets java-ee dependency-injection cdi

我遇到以下情况:我已经编写了一个CDI扩展,我希望以编程方式将其他bean注册到BeanManager。我已经实现了扩展并在META-INF/services文件夹中注册了。到目前为止一切正常,我可以跟踪调用此方法的容器:

public class TestCdiExtension implements Extension {

  public void observeAfterBeanDiscovery(@Observes AfterBeanDiscovery event, BeanManager manager) {
    // Code goes here
  }

}

我现在的问题是:要确定应注册哪些bean,我需要访问运行CDI的当前Web应用程序的ServletContext

据我所知,您可以在没有servlet环境的情况下完全使用CDI,因此没有硬链接。但是:我如何根据ServletContext中的内容执行注册其他bean的工作?

是否正确使用扩展程序?这样做还有其他(更好的?)解决方案吗?

0 个答案:

没有答案