CDI / Weld:禁用@PostConstruct的后期初始化/调用

时间:2011-12-05 20:07:48

标签: cdi jboss-weld

我在Jetty中运行了Hibernate和JSF 2的CDI / Weld应用程序。

我需要在Jetty服务器启动后进行一些初始化。我在@PostConstruct bean的@ApplicationScoped方法中执行此操作,但在将请求发送到应用程序之前不会调用它。我等不及了。

我试图找出是否有办法通过Weld挂钩应用程序生命周期,但我找不到任何东西。

有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:4)

在Java EE 7 / CDI 1.1 / Weld 2.0中,您可以观察@Initialized(ApplicationScoped.class)ServletContext事件。这将导致您的bean的实例急切地创建。

答案 1 :(得分:2)

servlet上下文侦听器怎么样?如果您需要注射,注射应该可以正常使用。它还取决于您需要进行何种初始化。可能会有一些您无法访问的内容,例如请求或会话范围的bean。

答案 2 :(得分:0)

要注意谁可能偶然发现这个问题。我无法使它发挥作用,最后还是写了自己的单身来处理情况。