Reputation: 24457
Is there a simple way to execute code just after CDI has bootstrapped ?
Actually I've got an @ApplicationScopped
bean which I want to be instanciated just after CDI has bootstrapped, is there a simple way to do that ?
Upvotes: 4
Views: 3818
Reputation: 8234
From this blog post:
Only recently, with the CDI 1.1 version; may 2013 (Java EE 7); you have the possibility to receive a CDI event when the container is ready.
public class CDIStartup {
public void postConstruct(@Observes @Initialized(ApplicationScoped.class) Object o) {
// CDI Ready
}
}
Upvotes: 3
Reputation: 2435
There's quite a few solutions but to me there's only two that does not feel hacky. I am not sure if Java EE 7 solved this somehow though, could not find anything when I googled.
@Startup
from EJB. This is best if you can use EJB@Observes @Initialized ServletContext context
http://deltaspike.apache.org/servlet.html
Upvotes: 2