Вопрос по jsf, startup, managed-bean – Как настроить запускаемый управляемый компонент?

10

Я хочу, чтобы управляемый компонент выполнялся внутренне при запуске в моем веб-приложении JSF при загрузке приложения. Как я могу написать этот класс и настроить его в Glassfish?

Ты пытался@ManagedBean(eager=true) ? Если вы используете CDI (@Named вместо @ManagedBean), вам придется & quot; наблюдать & quot; инициализация приложения .. с чем-то вроде этого ...public void init(@Observes @Initialized WebApplication webApplication) { //do Something }  (на самом деле я не пробовал это в Glassfish, я использовал его в jBoss AS 7, и вам может потребоваться некоторая конфигурация на других серверах ... проверьтеthis из... FMQ

Ваш Ответ

1   ответ
17

наблюдать инициализация изобласть применения.

@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 аннотации, используйтеобласть применения управляемый боб которыйс нетерпением инициализируется.

@ManagedBean(eager=true)
@ApplicationScoped
public class App {

    @PostConstruct
    public void startup() {
        // ...
    }

    @PreDestroy
    public void shutdown() {
        // ...
    }
}

Похожие вопросы