JSF 2 PostConstructApplicationEventおよびPreDestroyApplicationEventの例
JSF 2.0以降、
javax.faces.event.PostConstructApplicationEvent`と
javax.faces.event.PreDestroyApplicationEvent`システムイベントを登録して、JSFアプリケーションのライフサイクルを操作できます。
{空} 1。
PostConstructApplicationEvent
– アプリケーションの起動後にカスタムの構成後の設定を実行します。
PreDestroyApplicationEvent
– アプリケーションがシャットダウンされる前にカスタムクリーンアップタスクを実行します。
次の例は、JSF 2.0で
PostConstructApplicationEvent`と
PreDestroyApplicationEvent`システムイベントを作成する方法を示しています。
1. SystemEventListenerを実装します.
javax.faces.event.SystemEventListener`を実装するクラスを作成し、カスタムの設定後およびクリーンアップタスクの
processEvent()
および
isListenerForSource() `メソッドをオーバーライドします。
package com.mkyong; import javax.faces.application.Application; import javax.faces.event.AbortProcessingException; import javax.faces.event.PostConstructApplicationEvent; import javax.faces.event.PreDestroyApplicationEvent; import javax.faces.event.SystemEvent; import javax.faces.event.SystemEventListener; public class FacesAppListener implements SystemEventListener{ @Override public void processEvent(SystemEvent event) throws AbortProcessingException { if(event instanceof PostConstructApplicationEvent){ System.out.println("PostConstructApplicationEvent is Called"); } if(event instanceof PreDestroyApplicationEvent){ System.out.println("PreDestroyApplicationEvent is Called"); } } @Override public boolean isListenerForSource(Object source) { //only for Application return (source instanceof Application); } }
2.システムイベントを登録する
PostConstructApplicationEvent`と
PreDestroyApplicationEvent`システムイベントを
faces-config.xml
ファイルに次のように登録します:
faces-config.xml
<?xml version="1.0" encoding="UTF-8"?> <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig__2__0.xsd" version="2.0"> <application> <!-- Application is started --> <system-event-listener> <system-event-listener-class> com.mkyong.FacesAppListener </system-event-listener-class> <system-event-class> javax.faces.event.PostConstructApplicationEvent </system-event-class> </system-event-listener> <!-- Before Application is shut down --> <system-event-listener> <system-event-listener-class> com.mkyong.FacesAppListener </system-event-listener-class> <system-event-class> javax.faces.event.PreDestroyApplicationEvent </system-event-class> </system-event-listener> </application> </faces-config>
デモ
JSFアプリケーションを実行します。 `processEvent()`メソッドは、JSFアプリケーションの起動後に実行されます。下の図を参照してください。
-
注意** ただし、PreDestroyApplicationEventは実際には信頼できません。なぜなら、JSFは異常終了した場合にJSFを実行しないからです。例えば、Javaプロセスはシステム管理者によって殺されました。それはいつも起こっています:)。
だから、このシステムイベントを賢明に使ってください。
ソースコードをダウンロードする
ダウンロード – リンク://wp-content/uploads/2010/11/JSF-2-PostConstructApplicationEvent-Example.zip[JSF-2-PostConstructApplicationEvent-Example.zip](9KB)
リファレンス
2 PostConstructApplicationEvent JavaDoc]。
https://javaserverfaces.dev.java.net/nonav/docs/2.0/javadocs/javax/faces/event/PreDestroyApplicationEvent.html
[JSF
2 PreDestroyApplicationEvent JavaDoc]
リンク://タグ/jsf2/[jsf2]