入站网关

入站网关支持入站通道适配器上的所有属性(除了“channel”被替换为“request-channel”),以及一些其他属性。以下列表显示了可用的属性

@Bean // return the upper cased payload
public IntegrationFlow amqpInboundGateway(ConnectionFactory connectionFactory) {
    return IntegrationFlow.from(Amqp.inboundGateway(connectionFactory, "foo"))
            .transform(String.class, String::toUpperCase)
            .get();
}
1 此适配器的唯一 ID。可选。
2 发送已转换消息的消息通道。必需。
3 接收 AMQP 消息时要使用的AmqpHeaderMapper 的引用。可选。默认情况下,只有标准 AMQP 属性(例如contentType)才会复制到 Spring Integration MessageHeaders 和从 Spring Integration MessageHeaders 复制。默认的DefaultAmqpHeaderMapper不会将 AMQP MessageProperties 中的任何用户定义的标头复制到 AMQP 消息或从 AMQP 消息复制。如果提供了“request-header-names”或“reply-header-names”,则不允许使用。
4 要从 AMQP 请求映射到MessageHeaders 的 AMQP 标头名称的逗号分隔列表。只有在未提供“header-mapper”引用时才能提供此属性。此列表中的值也可以是与标头名称匹配的简单模式(例如"*""thing1*, thing2""*thing1")。
5 要映射到 AMQP 回复消息的 AMQP 消息属性的MessageHeaders名称的逗号分隔列表。所有标准标头(例如contentType)都映射到 AMQP 消息属性,而用户定义的标头则映射到“headers”属性。只有在未提供“header-mapper”引用时才能提供此属性。此列表中的值也可以是与标头名称匹配的简单模式(例如"*""foo*, bar""*foo")。
6 预期回复消息的消息通道。可选。
7 设置底层o.s.i.core.MessagingTemplate 上的receiveTimeout,用于从回复通道接收消息。如果未指定,此属性默认为1000(1 秒)。仅当容器线程在回复发送之前切换到另一个线程时才适用。
8 自定义的AmqpTemplate bean 引用(以便更好地控制要发送的回复消息)。您可以提供RabbitTemplate 的替代实现。
9 requestMessage没有replyTo属性时要使用的replyTo o.s.amqp.core.Address。如果未指定此选项,则未提供amqp-template,请求消息中不存在replyTo属性,并且会抛出IllegalStateException,因为无法路由回复。如果未指定此选项并提供了外部amqp-template,则不会抛出异常。如果您预计请求消息中不存在replyTo属性的情况,则必须指定此选项或在该模板上配置默认的exchangeroutingKey

有关配置listener-container属性,请参阅入站通道适配器中的说明。

从 5.5 版本开始,可以使用org.springframework.amqp.rabbit.retry.MessageRecoverer策略配置AmqpInboundChannelAdapter,该策略在内部调用重试操作时在RecoveryCallback中使用。有关详细信息,请参阅setMessageRecoverer() JavaDocs。

批量消息

请参阅批量消息