Class AbstractMessageSendingTemplate<D>

java.lang.Object
org.springframework.messaging.core.AbstractMessageSendingTemplate<D>
Type Parameters:
D - the destination type
All Implemented Interfaces:
MessageSendingOperations<D>
Direct Known Subclasses:
AbstractMessageReceivingTemplate, SimpMessagingTemplate

public abstract class AbstractMessageSendingTemplate<D> extends Object implements MessageSendingOperations<D>
Abstract base class for implementations of MessageSendingOperations.
Since:
4.0
Author:
Mark Fisher, Rossen Stoyanchev, Stephane Nicoll
  • Field Details

    • CONVERSION_HINT_HEADER

      public static final String CONVERSION_HINT_HEADER
      Name of the header that can be set to provide further information (e.g. a MethodParameter instance) about the origin of the payload, to be taken into account as a conversion hint.
      Since:
      4.2
      See Also:
    • logger

      protected final Log logger
  • Constructor Details

    • AbstractMessageSendingTemplate

      public AbstractMessageSendingTemplate()
  • Method Details

    • setDefaultDestination

      public void setDefaultDestination(@Nullable D defaultDestination)
      Configure the default destination to use in send methods that don't have a destination argument. If a default destination is not configured, send methods without a destination argument will raise an exception if invoked.
    • getDefaultDestination

      @Nullable public D getDefaultDestination()
      Return the configured default destination.
    • setMessageConverter

      public void setMessageConverter(MessageConverter messageConverter)
      Set the MessageConverter to use in convertAndSend methods.

      By default, SimpleMessageConverter is used.

      Parameters:
      messageConverter - the message converter to use
    • getMessageConverter

      public MessageConverter getMessageConverter()
      Return the configured MessageConverter.
    • send

      public void send(Message<?> message)
      Description copied from interface: MessageSendingOperations
      Send a message to a default destination.
      Specified by:
      send in interface MessageSendingOperations<D>
      Parameters:
      message - the message to send
    • getRequiredDefaultDestination

      protected final D getRequiredDefaultDestination()
    • send

      public void send(D destination, Message<?> message)
      Description copied from interface: MessageSendingOperations
      Send a message to the given destination.
      Specified by:
      send in interface MessageSendingOperations<D>
      Parameters:
      destination - the target destination
      message - the message to send
    • doSend

      protected abstract void doSend(D destination, Message<?> message)
    • convertAndSend

      public void convertAndSend(Object payload) throws MessagingException
      Description copied from interface: MessageSendingOperations
      Convert the given Object to serialized form, possibly using a MessageConverter, wrap it as a message and send it to a default destination.
      Specified by:
      convertAndSend in interface MessageSendingOperations<D>
      Parameters:
      payload - the Object to use as payload
      Throws:
      MessagingException
    • convertAndSend

      public void convertAndSend(D destination, Object payload) throws MessagingException
      Description copied from interface: MessageSendingOperations
      Convert the given Object to serialized form, possibly using a MessageConverter, wrap it as a message and send it to the given destination.
      Specified by:
      convertAndSend in interface MessageSendingOperations<D>
      Parameters:
      destination - the target destination
      payload - the Object to use as payload
      Throws:
      MessagingException
    • convertAndSend

      public void convertAndSend(D destination, Object payload, @Nullable Map<String,Object> headers) throws MessagingException
      Description copied from interface: MessageSendingOperations
      Convert the given Object to serialized form, possibly using a MessageConverter, wrap it as a message with the given headers and send it to the given destination.
      Specified by:
      convertAndSend in interface MessageSendingOperations<D>
      Parameters:
      destination - the target destination
      payload - the Object to use as payload
      headers - the headers for the message to send
      Throws:
      MessagingException
    • convertAndSend

      public void convertAndSend(Object payload, @Nullable MessagePostProcessor postProcessor) throws MessagingException
      Description copied from interface: MessageSendingOperations
      Convert the given Object to serialized form, possibly using a MessageConverter, wrap it as a message, apply the given post processor, and send the resulting message to a default destination.
      Specified by:
      convertAndSend in interface MessageSendingOperations<D>
      Parameters:
      payload - the Object to use as payload
      postProcessor - the post processor to apply to the message
      Throws:
      MessagingException
    • convertAndSend

      public void convertAndSend(D destination, Object payload, @Nullable MessagePostProcessor postProcessor) throws MessagingException
      Description copied from interface: MessageSendingOperations
      Convert the given Object to serialized form, possibly using a MessageConverter, wrap it as a message, apply the given post processor, and send the resulting message to the given destination.
      Specified by:
      convertAndSend in interface MessageSendingOperations<D>
      Parameters:
      destination - the target destination
      payload - the Object to use as payload
      postProcessor - the post processor to apply to the message
      Throws:
      MessagingException
    • convertAndSend

      public void convertAndSend(D destination, Object payload, @Nullable Map<String,Object> headers, @Nullable MessagePostProcessor postProcessor) throws MessagingException
      Description copied from interface: MessageSendingOperations
      Convert the given Object to serialized form, possibly using a MessageConverter, wrap it as a message with the given headers, apply the given post processor, and send the resulting message to the given destination.
      Specified by:
      convertAndSend in interface MessageSendingOperations<D>
      Parameters:
      destination - the target destination
      payload - the Object to use as payload
      headers - the headers for the message to send
      postProcessor - the post processor to apply to the message
      Throws:
      MessagingException
    • doConvert

      protected Message<?> doConvert(Object payload, @Nullable Map<String,Object> headers, @Nullable MessagePostProcessor postProcessor)
      Convert the given Object to serialized form, possibly using a MessageConverter, wrap it as a message with the given headers and apply the given post processor.
      Parameters:
      payload - the Object to use as payload
      headers - the headers for the message to send
      postProcessor - the post processor to apply to the message
      Returns:
      the converted message
    • processHeadersToSend

      @Nullable protected Map<String,Object> processHeadersToSend(@Nullable Map<String,Object> headers)
      Provides access to the map of input headers before a send operation. Subclasses can modify the headers and then return the same or a different map.

      This default implementation in this class returns the input map.

      Parameters:
      headers - the headers to send (or null if none)
      Returns:
      the actual headers to send (or null if none)