消息通道接口
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);
}