我使用Spring Boot,jms和IBM MQ。我知道存在BytesMessage可以发送文件,但是使用ObjectMessage对我来说将更加方便。我可以这样做吗,否则会导致大量的开销?
[使用JmsTemplate.convertAndSend
时,Spring将根据您发送的内容自动使用消息类型。请参阅SimpleMessageConverter
(默认设置)。
@Override
public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException {
if (object instanceof Message) {
return (Message) object;
}
else if (object instanceof String) {
return createMessageForString((String) object, session);
}
else if (object instanceof byte[]) {
return createMessageForByteArray((byte[]) object, session);
}
else if (object instanceof Map) {
return createMessageForMap((Map<? ,?>) object, session);
}
else if (object instanceof Serializable) {
return createMessageForSerializable(((Serializable) object), session);
}
else {
throw new MessageConversionException("Cannot convert object of type [" +
ObjectUtils.nullSafeClassName(object) + "] to JMS message. Supported message " +
"payloads are: String, byte array, Map<String,?>, Serializable object.");
}
}