我有两个独立的Java应用程序,我需要使用spring-rabbit在RabbitMQ之间发送消息。在作为生产者的应用程序中,我使用JsonMessageConverter
作为我的RabbitTemplate
的消息转换器,以便在将Java对象发送到队列之前将其转换为JSON消息。
在另一个应用程序中,我想将JSON消息转换回Java对象。我尝试将SimpleMessageListenerContainer
与自定义MessageListener
一起使用,我可以从队列中获取Message
,但我不知道将它们从JSON转换回Java对象。
如何在从RabbitMQ异步使用消息时使用JsonMessageConverter
?
答案 0 :(得分:5)
我最终使用带有自定义委托对象的MessageListenerAdapter
和JsonMessageConverter
作为MessageConverter
。像这样:
SimpleMessageListenerContainer listenerContainer = new SimpleMessageListenerContainer();
listenerContainer.setMessageListener(new MessageListenerAdapter(new EventHandler(), new JsonMessageConverter()));
我的EventHandler
类有一个名为handleMessage的方法,它获取传递给它的反序列化JSON对象。