出站訊息轉換
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 版本開始,新增到出站訊息的 但是,在某些情況下需要先前的行為——例如,當 現在,出站通道介面卡和閘道器(以及基於 AMQP 的通道)上有一個名為 從 5.1.9 版本開始,當產生回覆並希望覆蓋由轉換器填充的頭時,為 |