org.springframework.messaging.core

## 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 Summary

Fields
`static String` `CONVERSION_HINT_HEADER` Name of the header that can be set to provide further information (e.g.
`protected Log` `logger`

### Constructor Summary

Constructors
Constructor and Description
`AbstractMessageSendingTemplate()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`void` `convertAndSend(D destination, Object payload)` Convert the given Object to serialized form, possibly using a `MessageConverter`, wrap it as a message and send it to the given destination.
`void` `convertAndSend(D destination, Object payload, Map<String,Object> headers)` 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.
`void` `convertAndSend(D destination, Object payload, Map<String,Object> headers, MessagePostProcessor postProcessor)` 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.
`void` `convertAndSend(D destination, Object payload, MessagePostProcessor postProcessor)` 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.
`void` `convertAndSend(Object payload)` Convert the given Object to serialized form, possibly using a `MessageConverter`, wrap it as a message and send it to a default destination.
`void` `convertAndSend(Object payload, MessagePostProcessor postProcessor)` 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.
`protected Message<?>` `doConvert(Object payload, Map<String,Object> headers, 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.
`protected abstract void` `doSend(D destination, Message<?> message)`
`D` `getDefaultDestination()` Return the configured default destination.
`MessageConverter` `getMessageConverter()` Return the configured `MessageConverter`.
`protected D` `getRequiredDefaultDestination()`
`protected Map<String,Object>` `processHeadersToSend(Map<String,Object> headers)` Provides access to the map of input headers before a send operation.
`void` `send(D destination, Message<?> message)` Send a message to the given destination.
`void` `send(Message<?> message)` Send a message to a default destination.
`void` `setDefaultDestination(D defaultDestination)` Configure the default destination to use in send methods that don't have a destination argument.
`void` `setMessageConverter(MessageConverter messageConverter)` Set the `MessageConverter` to use in `convertAndSend` methods.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### 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:
  Constant Field Values

#### logger

    protected final Log logger

### Constructor Detail

#### AbstractMessageSendingTemplate

    public AbstractMessageSendingTemplate()

### Method Detail

#### 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)