|
如需使用最新稳定版本,请使用 Spring Integration 7.0.4! |
出站消息转换
Spring AMQP 1.4 引入了 ContentTypeDelegatingMessageConverter,其中实际的转换器会根据传入消息的内容类型属性进行选择。
这可用于入站端点。
从 Spring Integration 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 头设置为 application/json,这将导致选择 JSON 转换器。
这适用于出站通道适配器和网关。
|
从 5.0 版本开始,添加到出站消息 然而,在某些情况下需要之前的行为——例如,当包含 JSON 的 现在,出站通道适配器和网关(以及基于 AMQP 的通道)上有一个名为 从版本 5.1.9 开始,当生成回复并希望覆盖由转换器填充的头部时,为 |