Java MBassador¶
Javaのイベントバス・ライブラリの一つ。パフォーマンスが良く高機能なライブラリです。
MBassadorの入手¶
https://github.com/bennidi/mbassador
から、ソース一式を入手して自分でビルドします。または、mavenリポジトリからビルド済みバイナリを入手します。
http://search.maven.org/#search|ga|1|mbassador
最初の一歩¶
同期(同じスレッド)でイベントバスを利用するサンプル¶
- イベントバスの作成(設定はデフォルト、扱えるイベントはHelloEventクラス(とそのサブタイプ)
MBassador<HelloEvent> bus = new MBassador<>();
- イベントバスの購読インスタンスの生成と購読登録
HelloMbassador helloSubscriber = new HelloMbassador();
bus.subscribe(helloSubscriber);
- イベントバスの購読クラス
public class HelloMbassador {
@Handler
public void receive(HelloEvent event) {
System.out.printf("Event received. Thread=%s, event=%s%n", Thread.currentThread().getName(), event);
}
}
スレッドをまたがるサンプル¶
ライブラリメモ¶
イベントバス¶
- 同期/非同期双方を扱えるイベントバスは、MBassador<T>クラス
- 同期専用イベントバスは、SyncMessageBus<T>クラス
- イベントバスに詳細な設定をしたい場合は、BusConfigurationインスタンスに設定をしてMBassadorコンストラクタの引数で指定
- 非同期メッセージをハンドルする処理を呼ぶスレッドは、IBusConfigurationのgetFeature(Feature.AsynchronousHandlerInvocation.class)で設定したexecutor