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