出站消息转换
Spring AMQP 1.4 引入了ContentTypeDelegatingMessageConverter
,其中实际转换器的选择基于
在 Incoming Content Type Message 属性上。
入站终端节点可以使用此 API。
从 Spring 集成版本 4.3 开始,您可以使用ContentTypeDelegatingMessageConverter
在出站终端节点上,使用contentType
标头指定使用哪个转换器。
以下示例将ContentTypeDelegatingMessageConverter
,默认转换器为SimpleMessageConverter
(处理 Java 序列化和纯文本)以及 JSON 转换器:
<amqp:outbound-channel-adapter id="withContentTypeConverter" channel="ctRequestChannel"
exchange-name="someExchange"
routing-key="someKey"
amqp-template="amqpTemplateContentTypeConverter" />
<int:channel id="ctRequestChannel"/>
<rabbit:template id="amqpTemplateContentTypeConverter"
connection-factory="connectionFactory" message-converter="ctConverter" />
<bean id="ctConverter"
class="o.s.amqp.support.converter.ContentTypeDelegatingMessageConverter">
<property name="delegates">
<map>
<entry key="application/json">
<bean class="o.s.amqp.support.converter.Jackson2JsonMessageConverter" />
</entry>
</map>
</property>
</bean>
发送消息到ctRequestChannel
使用contentType
header 设置为application/json
导致选择 JSON 转换器。
这适用于出站通道适配器和网关。
从版本 5.0 开始,添加到 但是,在某些情况下,需要前一个行为 — 例如,当 现在有一个名为 从版本 5.1.9 开始,类似的 |