Beim Aktivieren und Deaktivieren von CDI-Scopes sendet der Container Events, die von der Anwendung bspw. zur Initialisierung genutzt werden können. Die Events sind Objekte, die mit dem Qualifier @Initialized(XyzScoped.class)
bzw. @Destroyed(XyzScoped.class)
qualifiziert sind.
So könnte der folgende Code verwendet werden, um nach dem Start bzw. Deployment der Anwendung Code auszuführen:
public class AppInit { private void doSomething(@Observes @Initialized(ApplicationScoped.class) Object event) { ... } }
Es ist allerdings zu berücksichtigen, dass zum Zeitpunkt der Methodenausführung noch nicht alle Kontexte aktiv sind. Im Beispiel oben wurde ja gerade der Application Scope gestartet, was noch lange nicht bedeutet, dass auch bspw. der Request Scope schon aktiviert wurde.