入站消息转换
到达通道适配器或网关的入站消息将使用消息转换器转换为 `spring-messaging` `Message<?>` 负载。默认情况下,使用 `SimpleMessageConverter`,它处理 Java 序列化和文本。标头默认使用 `DefaultHeaderMapper.inboundMapper()` 进行映射。如果发生转换错误,并且没有定义错误通道,则异常将抛出到容器并由监听器容器的错误处理程序处理。默认错误处理程序将转换错误视为致命错误,消息将被拒绝(如果队列配置为这样,则路由到死信交换)。如果定义了错误通道,则 `ErrorMessage` 负载是一个 `ListenerExecutionFailedException`,具有属性 `failedMessage`(无法转换的 Spring AMQP 消息)和 `cause`。如果容器的 `AcknowledgeMode` 为 `AUTO`(默认值)并且错误流在不抛出异常的情况下消耗错误,则原始消息将被确认。如果错误流抛出异常,则异常类型与容器的错误处理程序一起将决定是否重新排队消息。如果容器配置为 `AcknowledgeMode.MANUAL`,则负载是一个 `ManualAckListenerExecutionFailedException`,具有附加属性 `channel` 和 `deliveryTag`。这使错误流能够为消息调用 `basicAck` 或 `basicNack`(或 `basicReject`)来控制其处置。