イベントが単一のチャネルにパブリッシュされるSpringパブリッシュサブスクライブセットアップを使用しています。
さまざまなイベントは互いにまったく異なり、タイプからリスナーの動作を導き出すのは面倒です。
私は十分なタイプを持っていますが、さまざまなタイプを処理するためのさまざまなメッセージチャネルの急増に慣れていないので、可能であればこれを防ぎたいと思います。
イベントが単一のチャネルにパブリッシュされるSpringパブリッシュサブスクライブセットアップを使用しています。
さまざまなイベントは互いにまったく異なり、タイプからリスナーの動作を導き出すのは面倒です。
私は十分なタイプを持っていますが、さまざまなタイプを処理するためのさまざまなメッセージチャネルの急増に慣れていないので、可能であればこれを防ぎたいと思います。
Spring Integration パターンを見てください。宣言ロジックのみを使用して、pub/sub/channel パターンを実行できます。
http://static.springsource.org/spring-integration/reference/html/overview.html
要件は、キューの哲学でもトピックの哲学でもありません...ハイブリッドに加えて、いくつかの追加の識別受容体ロジックが必要です...基本的なアイデアを提供しようとしています。
Message -> this interface will have multiple subclasses for different types of messages
interface Receptor {
boolean isMessageDigestable(Message);
void digestMessage(Message);
void subscribe(Publisher);
}
different receptor will implement Receptor
class Publisher {
List<Receptor> receptors;
void addReceptor(){//your code here};
void produceMessage() {
Message m = ....//message production
for (Receptor r : receptors)
{
if (r.isDigestableMessage(m))
r.digestMessage(m);
}
}