Я хочу, чтобы управляемый bean запускался внутренне при запуске в моем веб-приложении JSF, когда приложение загружается. Как я могу написать этот класс и настроить в Glassfish?
Как настроить управляемый запуск bean?
Ответ 1
В JSF с CDI observe инициализация область приложения.
@Named
@ApplicationScoped
public class App {
public void startup(@Observes @Initialized(ApplicationScoped.class) Object context) {
// ...
}
public void shutdown(@Observes @Destroyed(ApplicationScoped.class) Object context) {
// ...
}
}
При наличии OmniFaces, это можно упростить с помощью @Eager
.
@Named
@Eager
@ApplicationScoped
public class App {
@PostConstruct
public void startup() {
// ...
}
@PreDestroy
public void shutdown() {
// ...
}
}
В JSF 2.2- с теперь устаревшими javax.faces.bean
аннотациями используйте приложение с областью управляемый bean, который нетерпеливо инициализировано.
@ManagedBean(eager=true)
@ApplicationScoped
public class App {
@PostConstruct
public void startup() {
// ...
}
@PreDestroy
public void shutdown() {
// ...
}
}