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);

}