如何在从通道接收Java对象时处理它们

时间:2018-06-12 19:35:02

标签: java rabbitmq

我想将序列化的Java对象发送到远程RabbitMQ客户端。我很感兴趣收到Object时最好的做法是什么,必须加以处理。我试过这段代码:

channel.basicPublish(EXCHANGE_NAME, ROUTING_KEY, null, SerializationUtils.serialize(new SomecustomObj()));

处理接收逻辑的Java代码:

public QueueConsumer() throws Exception {

        try {
            Consumer consumer = new DefaultConsumer(channel) {
                @Override
                public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,
                        byte[] body) throws IOException {
                    traslateObj(SerializationUtils.deserialize(body));
                }
            };
            channel.basicConsume(QUEUE_NAME, true, consumer);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private void traslateObj(Object obj) {      
        if (obj instanceof TransactionsBean) {
            /// do something
        }
        if (obj instanceof NotesBean) {
            /// do something
        }       
    }

您是否可以分享您的经验使用instanceof以便将Java对象导航到适当的处理或者使用其他方式(例如将HashMap与键和自定义对象一起使用)。

你能分享一些想法吗?

0 个答案:

没有答案