2014-05-13 145 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功能。 –