チュートリアルの春シリーズ
- 春のフレームワークの紹介
- 春のフレームワークモジュール
- 春の開発環境を構築する(エクリプス)
- シンプルなSpringアプリケーションを作成します。
- コントロールのコンテナの春反転(制御の反転 - IOC)
- おくる依存性注入(DI - 依存性注入)
- 豆のXML構成は(1) - XMLの設定によってBeanのロード
- 豆XMLコンフィギュレーション(2) - 豆の範囲およびライフサイクル・コールバック・メソッドの構成
- 豆のXML構成(3) - コンフィギュレーションの依存性注入
- 豆のXML設定(4) - 自動組立
- 豆の注釈(アノテーション)の設定(1) - アノテーションによってBeanのロード
- 豆アノテーション(注釈)の構成(2) - 豆の範囲およびライフサイクル・コールバック・メソッドの構成
- 豆アノテーション(注釈)の構成(3) - コンフィギュレーション依存性注入
- ビーンJavaの設定
- 春のアスペクト指向プログラミング(AOP)
- 春のイベント(1) - 内蔵のイベント
- 春のイベント(2) - カスタムイベント
春のイベントがあるApplicationEvent
の実現により、クラスのサブクラスApplicationEventPublisherAware
実装するクラスの送信インタフェースApplicationListener
クラスのモニタインタフェースを。
ApplicationContextのイベント
春はすでに組み込みのイベントのセットを定義しているApplicationContext
コンテナの問題。
例えば、ContextStartedEvent
でApplicationContext
スタートを送信し、送信を停止。ContextStoppedEvent
ApplicationContext
達成ApplicationListener
クラスはイベントをリッスンすることができます。
春のイベントは、(シングルスレッド)同期されているブロックされます。
ApplicationContextのモニター・イベント
リッスンするApplicationContext
イベント、リスナクラスが実装すべきApplicationListener
インタフェースをしてオーバーライドするonApplicationEvent()
方法を。
ContextStartEventHandler.java
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextStartedEvent;
public class ContextStartEventHandler implements ApplicationListener<ContextStartedEvent>{
@Override
public void onApplicationEvent(ContextStartedEvent event) {
System.out.println("ApplicationContext 启动... ");
}
}
Test.java
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
// ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
// fire the start event.
// ((ConfigurableApplicationContext) context).start();
ConfigurableApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
// fire the start event.
context.start();
// ...
}
}
XML設定ファイルでは、クラスがビーンをロードする春のコンテナは、ビーンとして宣言し、そのイベントを送信しています。
<bean id="contextStartEventHandler" class="ContextStartEventHandler"></bean>