Class SerializerMessageConverter

All Implemented Interfaces:
MessageConverter, Aware, BeanClassLoaderAware

public class SerializerMessageConverter extends AllowedListDeserializingMessageConverter implements BeanClassLoaderAware
Implementation of MessageConverter that can work with Strings or native objects of any kind via the Serializer and Deserializer abstractions in Spring. The AbstractMessageConverter.toMessage(Object, MessageProperties) method simply checks the type of the provided instance while the fromMessage(Message) method relies upon the content-type of the provided Message.

If a DefaultDeserializer is configured (default), the allowed patterns will be applied (if configured); for all other deserializers, the deserializer is responsible for checking classes, if necessary.

Author:
Dave Syer, Gary Russell, Artem Bilan
  • Field Details

    • DEFAULT_CHARSET

      public static final String DEFAULT_CHARSET
  • Constructor Details

    • SerializerMessageConverter

      public SerializerMessageConverter()
  • Method Details

    • setIgnoreContentType

      public void setIgnoreContentType(boolean ignoreContentType)
      Flag to signal that the content type should be ignored and the deserializer used irrespective if it is a text message. Defaults to false, in which case the default encoding is used to convert a text message to a String.
      Parameters:
      ignoreContentType - the flag value to set
    • setDefaultCharset

      public void setDefaultCharset(@Nullable String defaultCharset)
      Specify the default charset to use when converting to or from text-based Message body content. If not specified, the charset will be "UTF-8".
      Parameters:
      defaultCharset - The default charset.
    • setSerializer

      public void setSerializer(Serializer<Object> serializer)
      The serializer to use for converting Java objects to message bodies.
      Parameters:
      serializer - the serializer to set
    • setDeserializer

      public void setDeserializer(Deserializer<Object> deserializer)
      The deserializer to use for converting from message body to Java object.
      Parameters:
      deserializer - the deserializer to set
    • setBeanClassLoader

      public void setBeanClassLoader(ClassLoader classLoader)
      Specified by:
      setBeanClassLoader in interface BeanClassLoaderAware
    • fromMessage

      public Object fromMessage(Message message) throws MessageConversionException
      Converts from a AMQP Message to an Object.
      Specified by:
      fromMessage in interface MessageConverter
      Parameters:
      message - the message to convert
      Returns:
      the converted Java object
      Throws:
      MessageConversionException - in case of conversion failure
    • createMessage

      protected Message createMessage(Object object, MessageProperties messageProperties) throws MessageConversionException
      Creates an AMQP Message from the provided Object.
      Specified by:
      createMessage in class AbstractMessageConverter
      Parameters:
      object - the payload.
      messageProperties - the message properties (headers).
      Returns:
      a message.
      Throws:
      MessageConversionException