SpringCloud 讯息转换器
2023-11-27 13:37 更新
MessageConverters
定义两种方法:
Object fromMessage(Message<?> message, Class<?> targetClass);
Message<?> toMessage(Object payload, @Nullable MessageHeaders headers);
重要的是要了解这些方法的约定及其用法,尤其是在Spring Cloud Stream的上下文中。
fromMessage
方法将传入的Message
转换为参数类型。Message
的有效载荷可以是任何类型,而MessageConverter
的实际实现要支持多种类型。例如,某些JSON转换器可能支持有效负载类型为byte[]
,String
等。当应用程序包含内部管道(即输入→handler1→handler2→....→输出)并且上游处理程序的输出结果为Message
时,这可能不是初始连接格式,这一点很重要。
但是,toMessage
方法的合同更为严格,必须始终将Message
转换为有线格式:byte[]
。
因此,出于所有意图和目的(尤其是在实现自己的转换器时),您将这两种方法视为具有以下签名:
Object fromMessage(Message<?> message, Class<?> targetClass); Message<byte[]> toMessage(Object payload, @Nullable MessageHeaders headers);
以上内容是否对您有帮助:
更多建议: