2014-05-13 107 views
1

在CDI启动后执行代码是否有简单的方法?在CDI启动时执行代码

其实我有一个@ApplicationScopped bean,我想在CDI启动后立即执行,是否有一种简单的方法可以做到这一点?

回答

2

有很多解决方案,但对我来说只有两个不觉得哈克。我不确定是否Java EE 7以某种方式解决了这个问题,但是当我使用Google搜索时找不到任何东西。

  1. 使用来自EJB的@Startup。这是最好的,如果你可以使用EJB
  2. 使用从deltaspike的服务程序模块与@Observes @Initialized ServletContext context

http://deltaspike.apache.org/servlet.html

+0

谢谢您的回答。但是我不是在EJB环境中,我只是在使用Weld提供CDI的简单Tomcat中...我会尝试DeltaSpike的解决方案,但我有点害怕它添加的层(可能不正确)。 –

+2

嗨,Deltaspike是由来自Weld和OWB(和其他人)的人开发的,它不被视为一个额外的层。而是它提供了更多的CDI功能。 –