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]