Provided MessageConverters
如前所述,该框架已经提供了一堆 MessageConverter 来处理大多数常见用例。以下列表描述了提供的 MessageConverter,按优先级顺序(使用第一个可用的 MessageConverter):
-
JsonMessageConverter
:顾名思义,它支持在contentType
为application/json
(默认)的情况下,将Message
的有效负载转换为 POJO,反之亦然。 -
ByteArrayMessageConverter
:支持在contentType
为application/octet-stream
的情况下,将Message
的有效内容从byte[]
转换到byte[]
。它实质上是透传,并且主要为向后兼容而存在。 -
ObjectStringMessageConverter
:当contentType
为text/plain
时支持将任何类型转换为String
。它调用对象的toString()
方法,或者在有效负载为byte[]
的情况下,调用一个新String(byte[])
。
如果未找到合适的转换器,该框架将引发异常。当发生这种情况时,您应该检查您的代码和配置,确保您没有遗漏任何内容(即确保您使用绑定或标头提供了 contentType
)。但是,很有可能您发现了一些不常见的情况(如自定义 contentType
),而当前提供的 MessageConverters`堆栈不知道如何转换。如果是这种情况,您可以添加自定义 `MessageConverter
。请参阅 User-defined Message Converters。