我可以使用带有 Spring JMS 的 ObjectMessage 发送文件吗?

Can I send files using ObjectMessage with Spring JMS?

我使用 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.");
        }
    }