MessageChannel インターフェース
Spring Integration のトップレベル MessageChannel
インターフェースは、次のように定義されています。
public interface MessageChannel {
boolean send(Message message);
boolean send(Message message, long timeout);
}
メッセージを送信する場合、メッセージが正常に送信されると、戻り値は true
になります。送信呼び出しがタイムアウトまたは中断された場合、false
を返します。
PollableChannel
メッセージチャネルはメッセージをバッファリングする場合としない場合があるため(Spring Integration の概要で説明)、2 つのサブインターフェースがバッファリング(ポーリング可能)および非バッファリング(サブスクライブ可能)チャネルの動作を定義します。以下のリストは、PollableChannel
インターフェースの定義を示しています。
public interface PollableChannel extends MessageChannel {
Message<?> receive();
Message<?> receive(long timeout);
}
送信メソッドと同様に、メッセージを受信すると、タイムアウトまたは割り込みの場合、戻り値は null になります。
SubscribableChannel
SubscribableChannel
ベースインターフェースは、サブスクライブされた MessageHandler
インスタンスにメッセージを直接送信するチャネルによって実装されます。ポーリング用の受信メソッドは提供されません。代わりに、これらのサブスクライバを管理するためのメソッドを定義します。次のリストは、SubscribableChannel
インターフェースの定義を示しています。
public interface SubscribableChannel extends MessageChannel {
boolean subscribe(MessageHandler handler);
boolean unsubscribe(MessageHandler handler);
}