3

ServletContextListenerプレーンサーブレットWebアプリケーションでJSFアプリケーションが可能な限り開始または停止されるかどうかを聞きたいです。どうすればこれを達成できますか?

4

2 に答える 2

6

熱心に初期化された を使用して、目的の起動/シャットダウン フック メソッドにそれぞれ および で注釈を付けることができます。@ApplicationScoped @ManagedBean@PostConstruct@PreDestroy

そう:

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

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

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

}

これは、JSF Web アプリケーションで a を使用できないという意味ではないことに注意してください。ServletContextListenerJSF はサーブレット API の上に構築されているため、引き続き使用することができます。新しい Servlet 3.0@WebListenerアノテーションを使用すると、以下を必要とせずに構成することもできますweb.xml

@WebListener
public class Config implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        // ...
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        // ...
    }

}
于 2012-08-29T12:37:44.480 に答える
2

これには、システム イベント リスナーを提供できます。詳細については、このブログ投稿を参照してください:システム イベントを使用した JSF アプリケーションのブートストラップ

于 2012-08-29T14:07:12.687 に答える