提供的 MessageConverter

如前所述,框架已经提供了一系列 MessageConverter 来处理大多数常见用例。 以下列表按优先级顺序描述了所提供的 MessageConverter(第一个可用的 MessageConverter 将被使用):

  1. JsonMessageConverter:顾名思义,当 contentTypeapplication/json(默认)时,它支持将 Message 的有效载荷转换为 POJO 或从 POJO 转换。

  2. ByteArrayMessageConverter:当 contentTypeapplication/octet-stream 时,它支持将 Message 的有效载荷从 byte[] 转换为 byte[]。它本质上是一个直通转换器,主要用于向后兼容。

  3. ObjectStringMessageConverter:当 contentTypetext/plain 时,它支持将任何类型转换为 String。 它会调用对象的 toString() 方法,或者,如果有效载荷是 byte[],则调用 new String(byte[])

当找不到合适的转换器时,框架会抛出异常。发生这种情况时,您应该检查您的代码和配置,并确保您没有遗漏任何东西(即,确保您通过绑定或标头提供了 contentType)。 但是,最有可能的是,您发现了一些不常见的用例(例如自定义的 contentType),并且当前提供的 MessageConverter 栈 不知道如何转换。如果是这种情况,您可以添加自定义的 MessageConverter。请参阅 用户定义的 Message Converter