Lógica de inicialización con CDI (la alternativa a @Startup)

Thursday, October 01, 2020

El calificador @Initialized se activa cuando se inicializa un contexto y esta listo para su uso. Para lograr el efecto de @Startup observamos el contexto @ApplicationScoped con las anotaciones @Observes @Initialized como se ve en el ejemplo.

 


import javax.annotation.security.RunAs;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.context.Initialized;
import javax.enterprise.event.Observes;
import javax.inject.Inject;

@ApplicationScoped
@RunAs("admin")
public class AccountInitializer {
    public void init(@Observes @Initialized(ApplicationScoped.class) Object ignored) {
           //logica a inicializar
        }
    }
}