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