12

アプリケーションのロード時に、JSF Web アプリケーションの起動時にマネージド Bean を内部で実行したいと考えています。このクラスを記述して Glassfish で構成するにはどうすればよいですか?

4

1 に答える 1

20

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) {
        // ...
    }

}

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() {
        // ...
    }
}
于 2012-07-13T18:52:38.257 に答える