跳到主要内容
版本:7.0.2

MessageChannel 接口

DeepSeek V3 中英对照 The MessageChannel Interface

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

}