MessageChannel 接口

Spring 集成的顶级MessageChannel接口定义如下:spring-doc.cadn.net.cn

public interface MessageChannel {

    boolean send(Message message);

    boolean send(Message message, long timeout);
}

发送消息时,返回值为true如果消息发送成功。 如果 send 调用超时或中断,则返回false.spring-doc.cadn.net.cn

PollableChannel

由于消息通道可以也可能不缓冲消息(如 Spring 集成概述中所述),因此两个子接口定义了缓冲(可轮询)和非缓冲(可订阅)通道行为。 下面的清单显示了PollableChannel接口:spring-doc.cadn.net.cn

public interface PollableChannel extends MessageChannel {

    Message<?> receive();

    Message<?> receive(long timeout);

}

与 send 方法一样,当接收消息时,如果出现超时或中断,则返回值为 null。spring-doc.cadn.net.cn

SubscribableChannel

SubscribableChannelbase 接口由直接向其订阅的MessageHandler实例。 因此,它们不提供用于轮询的 receive 方法。 相反,它们定义了管理这些订阅者的方法。 下面的清单显示了SubscribableChannel接口:spring-doc.cadn.net.cn

public interface SubscribableChannel extends MessageChannel {

    boolean subscribe(MessageHandler handler);

    boolean unsubscribe(MessageHandler handler);

}