Spring 集成的顶级接口定义如下:MessageChannel
public interface MessageChannel {
boolean send(Message message);
boolean send(Message message, long timeout);
}
发送消息时,返回值为消息是否发送成功。
如果 send 调用超时或中断,则返回 。true
false
PollableChannel
由于消息通道可以也可能不缓冲消息(如 Spring 集成概述中所述),因此两个子接口定义了缓冲(可轮询)和非缓冲(可订阅)通道行为。
下面的清单显示了接口的定义:PollableChannel
public interface PollableChannel extends MessageChannel {
Message<?> receive();
Message<?> receive(long timeout);
}
与 send 方法一样,当接收消息时,如果出现超时或中断,则返回值为 null。
SubscribableChannel
基本接口由直接向其订阅的实例发送消息的通道实现。
因此,它们不提供用于轮询的 receive 方法。
相反,它们定义了管理这些订阅者的方法。
下面的清单显示了接口的定义:SubscribableChannel
MessageHandler
SubscribableChannel
public interface SubscribableChannel extends MessageChannel {
boolean subscribe(MessageHandler handler);
boolean unsubscribe(MessageHandler handler);
}