Google guavaイベントバスの使い方


Google EventBus
コンポーネント
  • イベント(どのようなタイプのイベント);
  • イベントリスナー、すなわちイベントハンドラ(応答);
  • 登録イベントリスナー(register);
  • トリガイベント(trigger/post);

  • ≪インスタンス|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);

    に質問
  • イベントリスナーはいつ登録されますか?イベントリスナーの作成後に自動的に登録し、注記@PostConstruct
  • を使用します.
  • プログラムはどのようにそのイベントリスナーが応答することを知っていますか?イベントオブジェクトタイプ(Stringなどのシステムタイプであってもカスタムクラスであってもよい)
  • .
    参考:spring+guavaイベント非同期配布処理Guava EventBus Spring