跳到主要内容
版本:7.0.2

入站网关

DeepSeek V3 中英对照 Inbound Gateway

入站网关支持入站通道适配器上的所有属性(除了 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();
}
  • 此适配器的唯一标识符。可选。

  • 转换后的消息将被发送到的消息通道。必需。

  • 接收 AMQP 消息时要使用的 AmqpHeaderMapper 引用。可选。默认情况下,只有标准的 AMQP 属性(例如 contentType)会在 Spring Integration 的 MessageHeaders 和 AMQP 消息之间进行复制。默认的 DefaultAmqpHeaderMapper 不会将 AMQP MessageProperties 中的任何用户自定义标头复制到 AMQP 消息中,也不会从 AMQP 消息中复制出来。如果提供了 'request-header-names' 或 'reply-header-names',则不允许提供此属性。

  • 要从 AMQP 请求映射到 MessageHeaders 的 AMQP 标头名称的逗号分隔列表。只有在未提供 'header-mapper' 引用时才能提供此属性。此列表中的值也可以是用于匹配标头名称的简单模式(例如 "*""thing1*, thing2""*thing1")。

  • 要映射到 AMQP 回复消息的 AMQP 消息属性中的 MessageHeaders 名称的逗号分隔列表。所有标准标头(例如 contentType)都会映射到 AMQP 消息属性,而用户自定义标头则映射到 'headers' 属性。只有在未提供 'header-mapper' 引用时才能提供此属性。此列表中的值也可以是用于匹配标头名称的简单模式(例如 "*""foo*, bar""*foo")。

  • 期望接收回复消息的消息通道。可选。

  • 设置底层 o.s.i.core.MessagingTemplatereceiveTimeout 属性,用于从回复通道接收消息。如果未指定,此属性默认为 1000(1 秒)。仅当容器线程在发送回复之前将任务移交给另一个线程时适用。

  • 自定义的 AmqpTemplate bean 引用(以便对要发送的回复消息有更多控制)。您可以提供一个 RabbitTemplate 的替代实现。

  • requestMessage 没有 replyTo 属性时要使用的 replyTo o.s.amqp.core.Address。如果未指定此选项,未提供 amqp-template,且请求消息中不存在 replyTo 属性,则会抛出 IllegalStateException,因为回复无法被路由。如果未指定此选项但提供了外部的 amqp-template,则不会抛出异常。如果您预期请求消息中可能不存在 replyTo 属性的情况,则必须指定此选项,或者在该模板上配置默认的 exchangeroutingKey

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

从版本5.5开始,AmqpInboundChannelAdapter 可以配置一个 org.springframework.amqp.rabbit.retry.MessageRecoverer 策略,该策略在内部调用重试操作时用于 RecoveryCallback。更多信息请参阅 setMessageRecoverer() 的 JavaDocs。

批量消息

请参阅批量消息处理