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