我在 Spring-AMQP 中使用异步消息接收器来接收消息。目前只处理带有 JSON 内容的消息,但我还需要处理带有 XML 内容的消息。我当前的实现MessageListener
有一个MessageConverter
注入并在 中使用它onMessage(Message)
,如下所示:
MyMessage myMessage = (MyMessage) jsonConverter.fromMessage(message);
为了支持不同的内容类型,我显然可以使用MessageProperties
来询问内容类型标题并手动选择要使用的转换器。但这似乎需要做很多工作,比如 Spring 应该为这种情况提供更好的支持。我希望找到一个通用的MessageConverter
实现,可以从内容类型映射到特定的转换器,但似乎没有这样的事情。
编写这样的委派转换器是我的最佳选择吗?或者有没有办法配置ListenerContainer
支持异步接收和根据需要自动使用的多个转换器?