如何配置启动托管bean?

use*_*940 10 jsf startup managed-bean

我希望托管bean在应用程序加载时在我的JSF Web应用程序中启动时在内部运行.如何在Glassfish中编写此类并进行配置?

Bal*_*usC 18

在与CDI JSF,观察初始化中的应用范围.

@Named
@ApplicationScoped
public class App {

    public void startup(@Observes @Initialized(ApplicationScoped.class) Object context) {
        // ...
    }

    public void shutdown(@Observes @Destroyed(ApplicationScoped.class) Object context) {
        // ...
    }

}
Run Code Online (Sandbox Code Playgroud)

当手上有OmniFaces时,这可以简化@Eager.

@Named
@Eager
@ApplicationScoped
public class App {

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

    @PreDestroy
    public void shutdown() {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

在JSF 2.2-用现在已经过时 javax.faces.bean的注释,使用应用程序范围的 托管bean这是急切地初始化.

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

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

    @PreDestroy
    public void shutdown() {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)