package org.jeecg.boot.starter.rabbitmq.core;
|
|
import org.springframework.amqp.core.Message;
|
import org.springframework.amqp.core.MessageProperties;
|
import org.springframework.amqp.support.converter.MessageConversionException;
|
import org.springframework.amqp.support.converter.MessageConverter;
|
|
import java.io.ByteArrayInputStream;
|
import java.io.ObjectInputStream;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
public class MapMessageConverter implements MessageConverter {
|
@Override
|
public Message toMessage(Object object, MessageProperties messageProperties) throws MessageConversionException {
|
return new Message(object.toString().getBytes(), messageProperties);
|
}
|
|
@Override
|
public Object fromMessage(Message message) throws MessageConversionException {
|
String contentType = message.getMessageProperties().getContentType();
|
if (null != contentType && contentType.contains("text")) {
|
return new String(message.getBody());
|
} else {
|
ObjectInputStream objInt = null;
|
try {
|
ByteArrayInputStream byteInt = new ByteArrayInputStream(message.getBody());
|
objInt = new ObjectInputStream(byteInt);
|
//byte[]转map
|
Map map = (HashMap) objInt.readObject();
|
return map;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
return null;
|
|
}
|
}
|