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

}