我想将序列化的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
与键和自定义对象一起使用)。
你能分享一些想法吗?