Class GenericMessagingTemplate
java.lang.Object
org.springframework.messaging.core.AbstractMessageSendingTemplate<D>
org.springframework.messaging.core.AbstractMessageReceivingTemplate<D>
org.springframework.messaging.core.AbstractMessagingTemplate<D>
org.springframework.messaging.core.AbstractDestinationResolvingMessagingTemplate<MessageChannel>
org.springframework.messaging.core.GenericMessagingTemplate
- All Implemented Interfaces:
- Aware,- BeanFactoryAware,- DestinationResolvingMessageReceivingOperations<MessageChannel>,- DestinationResolvingMessageRequestReplyOperations<MessageChannel>,- DestinationResolvingMessageSendingOperations<MessageChannel>,- MessageReceivingOperations<MessageChannel>,- MessageRequestReplyOperations<MessageChannel>,- MessageSendingOperations<MessageChannel>
public class GenericMessagingTemplate
extends AbstractDestinationResolvingMessagingTemplate<MessageChannel>
implements BeanFactoryAware
A messaging template that resolves destinations names to 
MessageChannel's
 to send and receive messages from.- Since:
- 4.0
- Author:
- Mark Fisher, Rossen Stoyanchev, Gary Russell
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final StringThe default header key used for a receive timeout.static final StringThe default header key used for a send timeout.Fields inherited from class org.springframework.messaging.core.AbstractMessageSendingTemplateCONVERSION_HINT_HEADER, logger
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected final Message<?>doReceive(MessageChannel channel) Actually receive a message from the given destination.protected final Message<?>doReceive(MessageChannel channel, long timeout) protected final voiddoSend(MessageChannel channel, Message<?> message) protected final voiddoSend(MessageChannel channel, Message<?> message, long timeout) protected final Message<?>doSendAndReceive(MessageChannel channel, Message<?> requestMessage) longReturn the configured receive operation timeout value.Return the configured receive-timeout header.longReturn the configured default send operation timeout value.Return the configured send-timeout header.voidsetBeanFactory(BeanFactory beanFactory) Callback that supplies the owning factory to a bean instance.voidsetReceiveTimeout(long receiveTimeout) Configure the default timeout value to use for receive operations.voidsetReceiveTimeoutHeader(String receiveTimeoutHeader) Set the name of the header used to determine the send timeout (if present).voidsetSendTimeout(long sendTimeout) Configure the default timeout value to use for send operations.voidsetSendTimeoutHeader(String sendTimeoutHeader) Set the name of the header used to determine the send timeout (if present).voidsetThrowExceptionOnLateReply(boolean throwExceptionOnLateReply) Whether the thread sending a reply should have an exception raised if the receiving thread isn't going to receive the reply either because it timed out, or because it already received a reply, or because it got an exception while sending the request message.Methods inherited from class org.springframework.messaging.core.AbstractDestinationResolvingMessagingTemplateconvertAndSend, convertAndSend, convertAndSend, convertAndSend, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, getDestinationResolver, receive, receiveAndConvert, resolveDestination, send, sendAndReceive, setDestinationResolverMethods inherited from class org.springframework.messaging.core.AbstractMessagingTemplateconvertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, sendAndReceive, sendAndReceiveMethods inherited from class org.springframework.messaging.core.AbstractMessageReceivingTemplatedoConvert, receive, receive, receiveAndConvert, receiveAndConvertMethods inherited from class org.springframework.messaging.core.AbstractMessageSendingTemplateconvertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, doConvert, getDefaultDestination, getMessageConverter, getRequiredDefaultDestination, processHeadersToSend, send, send, setDefaultDestination, setMessageConverterMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.messaging.core.MessageReceivingOperationsreceive, receive, receiveAndConvert, receiveAndConvertMethods inherited from interface org.springframework.messaging.core.MessageRequestReplyOperationsconvertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, sendAndReceive, sendAndReceiveMethods inherited from interface org.springframework.messaging.core.MessageSendingOperationsconvertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, send, send
- 
Field Details- 
DEFAULT_SEND_TIMEOUT_HEADERThe default header key used for a send timeout.- See Also:
 
- 
DEFAULT_RECEIVE_TIMEOUT_HEADERThe default header key used for a receive timeout.- See Also:
 
 
- 
- 
Constructor Details- 
GenericMessagingTemplatepublic GenericMessagingTemplate()
 
- 
- 
Method Details- 
setSendTimeoutpublic void setSendTimeout(long sendTimeout) Configure the default timeout value to use for send operations. May be overridden for individual messages.- Parameters:
- sendTimeout- the send timeout in milliseconds
- See Also:
 
- 
getSendTimeoutpublic long getSendTimeout()Return the configured default send operation timeout value.
- 
setReceiveTimeoutpublic void setReceiveTimeout(long receiveTimeout) Configure the default timeout value to use for receive operations. May be overridden for individual messages when using sendAndReceive operations.- Parameters:
- receiveTimeout- the receive timeout in milliseconds
- See Also:
 
- 
getReceiveTimeoutpublic long getReceiveTimeout()Return the configured receive operation timeout value.
- 
setSendTimeoutHeaderSet the name of the header used to determine the send timeout (if present). Default "sendTimeout".The header is removed before sending the message to avoid propagation. - Since:
- 5.0
 
- 
getSendTimeoutHeaderReturn the configured send-timeout header.- Since:
- 5.0
 
- 
setReceiveTimeoutHeaderSet the name of the header used to determine the send timeout (if present). Default "receiveTimeout". The header is removed before sending the message to avoid propagation.- Since:
- 5.0
 
- 
getReceiveTimeoutHeaderReturn the configured receive-timeout header.- Since:
- 5.0
 
- 
setThrowExceptionOnLateReplypublic void setThrowExceptionOnLateReply(boolean throwExceptionOnLateReply) Whether the thread sending a reply should have an exception raised if the receiving thread isn't going to receive the reply either because it timed out, or because it already received a reply, or because it got an exception while sending the request message.The default value is falsein which case only a WARN message is logged. If set totrueaMessageDeliveryExceptionis raised in addition to the log message.- Parameters:
- throwExceptionOnLateReply- whether to throw an exception or not
 
- 
setBeanFactoryDescription copied from interface:BeanFactoryAwareCallback that supplies the owning factory to a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as InitializingBean.afterPropertiesSet()or a custom init-method.- Specified by:
- setBeanFactoryin interface- BeanFactoryAware
- Parameters:
- beanFactory- owning BeanFactory (never- null). The bean can immediately call methods on the factory.
- Throws:
- BeansException- in case of initialization errors
- See Also:
 
- 
doSend- Specified by:
- doSendin class- AbstractMessageSendingTemplate<MessageChannel>
 
- 
doSend
- 
doReceiveDescription copied from class:AbstractMessageReceivingTemplateActually receive a message from the given destination.- Specified by:
- doReceivein class- AbstractMessageReceivingTemplate<MessageChannel>
- Parameters:
- channel- the target destination
- Returns:
- the received message, possibly nullif the message could not be received, for example due to a timeout
 
- 
doReceive
- 
doSendAndReceive@Nullable protected final Message<?> doSendAndReceive(MessageChannel channel, Message<?> requestMessage) - Specified by:
- doSendAndReceivein class- AbstractMessagingTemplate<MessageChannel>
 
 
-