Google guavaイベントバスの使い方
1949 ワード
Google EventBus
コンポーネントイベント(どのようなタイプのイベント); イベントリスナー、すなわちイベントハンドラ(応答); 登録イベントリスナー(register); トリガイベント(trigger/post);
≪インスタンス|Instance|emdw≫
イベント、任意のカスタムオブジェクト
イベントリスナー
イベントリスナー自身がeventBusに登録
コントローラでイベントをトリガー
に質問イベントリスナーはいつ登録されますか?イベントリスナーの作成後に自動的に登録し、注記@PostConstruct を使用します.プログラムはどのようにそのイベントリスナーが応答することを知っていますか?イベントオブジェクトタイプ(Stringなどのシステムタイプであってもカスタムクラスであってもよい) .
参考:spring+guavaイベント非同期配布処理Guava EventBus Spring
コンポーネント
≪インスタンス|Instance|emdw≫
イベント、任意のカスタムオブジェクト
/**
* Created by whuanghkl on 17/6/22.
*
*/
public class AccessLoggerEvent {
}
イベントリスナー
/**
* Created by whuanghkl on 17/6/22.
*
*/
@Component
public class AccessLoggerListener {
@Resource
private EventBus eventBus;
@PostConstruct
public void init() {
eventBus.register(this);
}
@Subscribe
public void logEvent(AccessLoggerEvent event) {
System.out.println("logEvent");
}
}
イベントリスナー自身がeventBusに登録
コントローラでイベントをトリガー
AccessLoggerEvent accessLoggerEvent = new AccessLoggerEvent();
eventBus.post(accessLoggerEvent);
に質問
参考:spring+guavaイベント非同期配布処理Guava EventBus Spring