Class AbstractMessageSendingTemplate<D>
- java.lang.Object
- org.springframework.messaging.core.AbstractMessageSendingTemplate<D>
- 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 ofMessageSendingOperations
.- Since:
- 4.0
- Author:
- Mark Fisher, Rossen Stoyanchev, Stephane Nicoll
Field Summary
Fields Modifier and Type Field Description 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 Description AbstractMessageSendingTemplate()
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
convertAndSend(D destination, Object payload)
Convert the given Object to serialized form, possibly using aMessageConverter
, 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 aMessageConverter
, 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 aMessageConverter
, 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 aMessageConverter
, 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 aMessageConverter
, 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 aMessageConverter
, 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 aMessageConverter
, 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 configuredMessageConverter
.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 theMessageConverter
to use inconvertAndSend
methods.
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. aMethodParameter
instance) about the origin of the payload, to be taken into account as a conversion hint.- Since:
- 4.2
- See Also:
- Constant Field Values
Constructor Detail
AbstractMessageSendingTemplate
public AbstractMessageSendingTemplate()
Method Detail
setDefaultDestination
public void setDefaultDestination(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
public D getDefaultDestination()
Return the configured default destination.
setMessageConverter
public void setMessageConverter(MessageConverter messageConverter)
Set theMessageConverter
to use inconvertAndSend
methods.By default,
SimpleMessageConverter
is used.- Parameters:
messageConverter
- the message converter to use
getMessageConverter
public MessageConverter getMessageConverter()
Return the configuredMessageConverter
.
send
public void send(Message<?> message)
Description copied from interface:MessageSendingOperations
Send a message to a default destination.- Specified by:
send
in interfaceMessageSendingOperations<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 interfaceMessageSendingOperations<D>
- Parameters:
destination
- the target destinationmessage
- the message to send
convertAndSend
public void convertAndSend(Object payload) throws MessagingException
Description copied from interface:MessageSendingOperations
Convert the given Object to serialized form, possibly using aMessageConverter
, wrap it as a message and send it to a default destination.- Specified by:
convertAndSend
in interfaceMessageSendingOperations<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 aMessageConverter
, wrap it as a message and send it to the given destination.- Specified by:
convertAndSend
in interfaceMessageSendingOperations<D>
- Parameters:
destination
- the target destinationpayload
- the Object to use as payload- Throws:
MessagingException
convertAndSend
public void convertAndSend(D destination, Object payload, Map<String,Object> headers) throws MessagingException
Description copied from interface:MessageSendingOperations
Convert the given Object to serialized form, possibly using aMessageConverter
, wrap it as a message with the given headers and send it to the given destination.- Specified by:
convertAndSend
in interfaceMessageSendingOperations<D>
- Parameters:
destination
- the target destinationpayload
- the Object to use as payloadheaders
- headers for the message to send- Throws:
MessagingException
convertAndSend
public void convertAndSend(Object payload, MessagePostProcessor postProcessor) throws MessagingException
Description copied from interface:MessageSendingOperations
Convert the given Object to serialized form, possibly using aMessageConverter
, wrap it as a message, apply the given post processor, and send the resulting message to a default destination.- Specified by:
convertAndSend
in interfaceMessageSendingOperations<D>
- Parameters:
payload
- the Object to use as payloadpostProcessor
- the post processor to apply to the message- Throws:
MessagingException
convertAndSend
public void convertAndSend(D destination, Object payload, MessagePostProcessor postProcessor) throws MessagingException
Description copied from interface:MessageSendingOperations
Convert the given Object to serialized form, possibly using aMessageConverter
, wrap it as a message, apply the given post processor, and send the resulting message to the given destination.- Specified by:
convertAndSend
in interfaceMessageSendingOperations<D>
- Parameters:
destination
- the target destinationpayload
- the Object to use as payloadpostProcessor
- the post processor to apply to the message- Throws:
MessagingException
convertAndSend
public void convertAndSend(D destination, Object payload, Map<String,Object> headers, MessagePostProcessor postProcessor) throws MessagingException
Description copied from interface:MessageSendingOperations
Convert the given Object to serialized form, possibly using aMessageConverter
, 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 interfaceMessageSendingOperations<D>
- Parameters:
destination
- the target destinationpayload
- the Object to use as payloadheaders
- headers for the message to sendpostProcessor
- the post processor to apply to the message- Throws:
MessagingException
doConvert
protected Message<?> doConvert(Object payload, Map<String,Object> headers, MessagePostProcessor postProcessor)
Convert the given Object to serialized form, possibly using aMessageConverter
, wrap it as a message with the given headers and apply the given post processor.- Parameters:
payload
- the Object to use as payloadheaders
- headers for the message to sendpostProcessor
- the post processor to apply to the message- Returns:
- the converted message
processHeadersToSend
protected Map<String,Object> processHeadersToSend(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 (ornull
if none)- Returns:
- the actual headers to send (or
null
if none)