将 org.springframework.amqp.support.converter.MessageConverter 转换为 org.springframework.messaging.converter.MessageConverter

Convert a org.springframework.amqp.support.converter.MessageConverter to a org.springframework.messaging.converter.MessageConverter

我有一个自定义 org.springframework.amqp.support.converter.MessageConverter 编写供 spring-amqp but now we're moving to spring cloud stream 使用,它使用另一个 MessageConverter (org.springframework.messaging.converter.MessageConverter)。

那么有没有办法将 Spring AMQP MessageConverter (org.springframework.amqp.support.converter.MessageConverter) 转换为 Spring Cloud Stream MessageConverter (org.springframework.messaging.converter.MessageConverter)?

如果没有,是否有办法在 org.springframework.amqp.core.Messageorg.springframework.messaging.Message 之间进行转换,反之亦然,以便我可以重用为 Spring AMQP 编写的客户消息转换器?

您的定制的性质是什么?

在 Spring Cloud Stream 中,在消费者端,在咨询转换器以转换 byte[] 有效负载(AMQP消息 body()) 到所需的类型。

MessageProperties 映射到 Message<?> headers.

在出站端,转换器必须创建一个 byte[] 负载。

SCSt 中的转换器独立于传输(RabbitMQ、Kafka 等),因此您无需重写任何代码即可更改绑定器。

因此您需要将逻辑移植到消息传递转换器。