MessageChannel 介面

Spring Integration 的頂層 MessageChannel 介面定義如下

public interface MessageChannel {

    boolean send(Message message);

    boolean send(Message message, long timeout);
}

當發送訊息時,如果訊息成功發送,則傳回值為 true。如果發送呼叫逾時或被中斷,則傳回 false

PollableChannel

由於訊息通道可能會或可能不會緩衝訊息(如 Spring Integration 總覽 中所述),因此兩個子介面定義了緩衝(可輪詢)和非緩衝(可訂閱)通道行為。以下列表顯示了 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);

}