2012-01-22 6 views
2

メッセージ(イベント)を受信して​​処理するJ2EEアプリケーションがあります。これらのメッセージには、さまざまなデータブロックが含まれています。メッセージに含まれるデータのタイプに応じて、異なるタイプの処理をトリガすることができます。プラグイン可能なコンシューマを持つ内部イベントバス

私は、メイン処理スレッドがメッセージ内容に応じて異なるポストプロセッサを呼び出すために使用できる単純な内部イベント/メッセージバスを持っていたいと考えています。たとえば、タイプAのメッセージが受信された場合は、タイプAのイベントを購読しているすべてのポストプロセッサーに内部イベントを送信できるようにしたいと考えています。ポストプロセッサーは、自分の時間/糸。ポストプロセッサが何らかのプラグインフレームワークを介してアプリケーションから追加/削除されるのであればいいです(ただし必須ではありません)。

私はさまざまなメッセージバスが利用可能であると理解します。私は実際に自分の料理を作るための適切な(軽量の)選択肢や、おそらくデザインパターン/例に関するアドバイスを求めています。見越し

答えて

3

Guavaあり、素敵なEventBus実装の

感謝。 documentationを参照してください。

+0

ありがとうございます。私はドキュメンテーションを通して作業し、その日の後半に再びコメントします。 – skyman

+0

パーフェクト - ありがとうございました – skyman

2

また、MBassador https://github.com/bennidi/mbassadorをチェックアウトすることもできます。

アノテーションは非常に軽量であり、弱い参照を使用します(したがって、オブジェクトのライフサイクル管理がスプリングやguiceやsomethignのようなフレームワークによって行われる環境での統合が容易です)。これは、オブジェクトのフィルタリングメカニズムと、同期または非同期のディスパッチ/メッセージ処理を提供します。そしてそれは非常に速いです!

EDIT:Guava、MBassadorなどのイベントバス実装の選択肢のパフォーマンスと機能の比較を作成しました。結果はかなり面白いです。ここをクリック http://codeblock.engio.net/?p=37

+0

ドキュメントが追加されました。近いうちにGuavaバスと性能比較をするつもりだと思う。 – bennidi

+0

ありがとうございます。 – skyman

関連する問題