提供的 MessageConverter
如前所述,框架已经提供了一系列 MessageConverter
来处理大多数常见用例。
以下列表按优先级顺序描述了所提供的 MessageConverter
(第一个可用的 MessageConverter
将被使用):
-
JsonMessageConverter
:顾名思义,当contentType
为application/json
(默认)时,它支持将Message
的有效载荷转换为 POJO 或从 POJO 转换。 -
ByteArrayMessageConverter
:当contentType
为application/octet-stream
时,它支持将Message
的有效载荷从byte[]
转换为byte[]
。它本质上是一个直通转换器,主要用于向后兼容。 -
ObjectStringMessageConverter
:当contentType
为text/plain
时,它支持将任何类型转换为String
。 它会调用对象的toString()
方法,或者,如果有效载荷是byte[]
,则调用new String(byte[])
。
当找不到合适的转换器时,框架会抛出异常。发生这种情况时,您应该检查您的代码和配置,并确保您没有遗漏任何东西(即,确保您通过绑定或标头提供了 contentType
)。
但是,最有可能的是,您发现了一些不常见的用例(例如自定义的 contentType
),并且当前提供的 MessageConverter
栈
不知道如何转换。如果是这种情况,您可以添加自定义的 MessageConverter
。请参阅 用户定义的 Message Converter。