Class RabbitMessagingTemplate

java.lang.Object
org.springframework.messaging.core.AbstractMessageSendingTemplate<String>
org.springframework.messaging.core.AbstractMessageReceivingTemplate<String>
org.springframework.messaging.core.AbstractMessagingTemplate<String>
org.springframework.amqp.rabbit.core.RabbitMessagingTemplate
All Implemented Interfaces:
RabbitMessageOperations, org.springframework.beans.factory.InitializingBean, org.springframework.messaging.core.MessageReceivingOperations<String>, org.springframework.messaging.core.MessageRequestReplyOperations<String>, org.springframework.messaging.core.MessageSendingOperations<String>

public class RabbitMessagingTemplate extends org.springframework.messaging.core.AbstractMessagingTemplate<String> implements RabbitMessageOperations, org.springframework.beans.factory.InitializingBean
An implementation of RabbitMessageOperations.
Since:
1.4
  • Field Summary

    Fields inherited from class org.springframework.messaging.core.AbstractMessageSendingTemplate

    CONVERSION_HINT_HEADER, logger
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor for use with bean properties.
    Create an instance with the RabbitTemplate to use.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    protected org.springframework.messaging.MessagingException
     
    protected @Nullable org.springframework.messaging.Message<?>
    convertAmqpMessage(@Nullable org.springframework.amqp.core.Message message)
     
    void
    convertAndSend(@Nullable String exchange, @Nullable String routingKey, Object payload, @Nullable Map<String,Object> headers, @Nullable org.springframework.messaging.core.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 a specific exchange with a specific routing key.
    <T> @Nullable T
    convertSendAndReceive(@Nullable String exchange, @Nullable String routingKey, Object request, @Nullable Map<String,Object> headers, Class<T> targetClass, @Nullable org.springframework.messaging.core.MessagePostProcessor requestPostProcessor)
    Convert the given request 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 a specific exchange with a specific routing key, receive the reply and convert its body of the given target class.
    protected @Nullable org.springframework.messaging.Message<?>
    doReceive(String destination)
     
    protected void
    doSend(@Nullable String exchange, @Nullable String routingKey, org.springframework.messaging.Message<?> message)
     
    protected void
    doSend(@Nullable String destination, org.springframework.messaging.Message<?> message)
     
    protected @Nullable org.springframework.messaging.Message<?>
    doSendAndReceive(@Nullable String exchange, @Nullable String routingKey, org.springframework.messaging.Message<?> requestMessage)
     
    protected @Nullable org.springframework.messaging.Message<?>
    doSendAndReceive(@Nullable String destination, org.springframework.messaging.Message<?> requestMessage)
     
    org.springframework.amqp.support.converter.MessageConverter
     
     
    @Nullable org.springframework.messaging.Message<?>
     
    <T> @Nullable T
    receiveAndConvert(Class<T> targetClass)
     
    void
    send(@Nullable String exchange, @Nullable String routingKey, org.springframework.messaging.Message<?> message)
    Send a message to a specific exchange with a specific routing key.
    @Nullable org.springframework.messaging.Message<?>
    sendAndReceive(@Nullable String exchange, @Nullable String routingKey, org.springframework.messaging.Message<?> requestMessage)
    Send a request message to a specific exchange with a specific routing key and wait for the reply.
    void
    setAmqpMessageConverter(org.springframework.amqp.support.converter.MessageConverter amqpMessageConverter)
    Set the MessageConverter to use to convert a Message from the messaging to and from a Message.
    void
    Set the RabbitTemplate to use.
    void
    setUseTemplateDefaultReceiveQueue(boolean useTemplateDefaultReceiveQueue)
    When true, use the underlying RabbitTemplate's defaultReceiveQueue property (if configured) for receive only methods instead of the defaultDestination configured in this template.

    Methods inherited from class org.springframework.messaging.core.AbstractMessagingTemplate

    convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, sendAndReceive, sendAndReceive

    Methods inherited from class org.springframework.messaging.core.AbstractMessageReceivingTemplate

    doConvert, receive, receiveAndConvert

    Methods inherited from class org.springframework.messaging.core.AbstractMessageSendingTemplate

    convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, doConvert, getDefaultDestination, getMessageConverter, getRequiredDefaultDestination, processHeadersToSend, send, send, setDefaultDestination, setMessageConverter

    Methods inherited from class java.lang.Object

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

    Methods inherited from interface org.springframework.messaging.core.MessageReceivingOperations

    receive, receiveAndConvert

    Methods inherited from interface org.springframework.messaging.core.MessageRequestReplyOperations

    convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, sendAndReceive, sendAndReceive

    Methods inherited from interface org.springframework.messaging.core.MessageSendingOperations

    convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, send, send
  • Constructor Details

  • Method Details

    • setRabbitTemplate

      public void setRabbitTemplate(RabbitTemplate rabbitTemplate)
      Set the RabbitTemplate to use.
      Parameters:
      rabbitTemplate - the template.
    • getRabbitTemplate

      public RabbitTemplate getRabbitTemplate()
      Returns:
      the configured RabbitTemplate.
    • setAmqpMessageConverter

      public void setAmqpMessageConverter(org.springframework.amqp.support.converter.MessageConverter amqpMessageConverter)
      Set the MessageConverter to use to convert a Message from the messaging to and from a Message. By default, a MessagingMessageConverter is defined using the provided RabbitTemplate's message converter (a SimpleMessageConverter by default) to convert the payload of the message.

      Consider configuring a MessagingMessageConverter with a different payload converter for more advanced scenarios.

      Parameters:
      amqpMessageConverter - the message converter.
      See Also:
      • MessagingMessageConverter
    • getAmqpMessageConverter

      public org.springframework.amqp.support.converter.MessageConverter getAmqpMessageConverter()
      Returns:
      the MessageConverter to use to convert a Message from the messaging to and from a Message.
    • setUseTemplateDefaultReceiveQueue

      public void setUseTemplateDefaultReceiveQueue(boolean useTemplateDefaultReceiveQueue)
      When true, use the underlying RabbitTemplate's defaultReceiveQueue property (if configured) for receive only methods instead of the defaultDestination configured in this template. Set this to true to use the template's queue instead. Default false, but will be true in a future release.
      Parameters:
      useTemplateDefaultReceiveQueue - true to use the template's queue.
      Since:
      2.2.22
    • afterPropertiesSet

      public void afterPropertiesSet()
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
    • send

      public void send(@Nullable String exchange, @Nullable String routingKey, org.springframework.messaging.Message<?> message) throws org.springframework.messaging.MessagingException
      Description copied from interface: RabbitMessageOperations
      Send a message to a specific exchange with a specific routing key.
      Specified by:
      send in interface RabbitMessageOperations
      Parameters:
      exchange - the name of the exchange
      routingKey - the routing key
      message - the message to send
      Throws:
      org.springframework.messaging.MessagingException - a messaging exception.
    • convertAndSend

      public void convertAndSend(@Nullable String exchange, @Nullable String routingKey, Object payload, @Nullable Map<String,Object> headers, @Nullable org.springframework.messaging.core.MessagePostProcessor postProcessor) throws org.springframework.messaging.MessagingException
      Description copied from interface: RabbitMessageOperations
      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 a specific exchange with a specific routing key.
      Specified by:
      convertAndSend in interface RabbitMessageOperations
      Parameters:
      exchange - the name of the exchange
      routingKey - the routing key
      payload - the Object to use as payload
      headers - headers for the message to send
      postProcessor - the post processor to apply to the message
      Throws:
      org.springframework.messaging.MessagingException - a messaging exception.
    • sendAndReceive

      public @Nullable org.springframework.messaging.Message<?> sendAndReceive(@Nullable String exchange, @Nullable String routingKey, org.springframework.messaging.Message<?> requestMessage) throws org.springframework.messaging.MessagingException
      Description copied from interface: RabbitMessageOperations
      Send a request message to a specific exchange with a specific routing key and wait for the reply.
      Specified by:
      sendAndReceive in interface RabbitMessageOperations
      Parameters:
      exchange - the name of the exchange
      routingKey - the routing key
      requestMessage - the message to send
      Returns:
      the reply, possibly null if the message could not be received, for example due to a timeout
      Throws:
      org.springframework.messaging.MessagingException - a messaging exception.
    • convertSendAndReceive

      public <T> @Nullable T convertSendAndReceive(@Nullable String exchange, @Nullable String routingKey, Object request, @Nullable Map<String,Object> headers, Class<T> targetClass, @Nullable org.springframework.messaging.core.MessagePostProcessor requestPostProcessor) throws org.springframework.messaging.MessagingException
      Description copied from interface: RabbitMessageOperations
      Convert the given request 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 a specific exchange with a specific routing key, receive the reply and convert its body of the given target class.
      Specified by:
      convertSendAndReceive in interface RabbitMessageOperations
      Type Parameters:
      T - return type
      Parameters:
      exchange - the name of the exchange
      routingKey - the routing key
      request - payload for the request message to send
      headers - headers for the message to send
      targetClass - the target type to convert the payload of the reply to
      requestPostProcessor - post process to apply to the request message
      Returns:
      the payload of the reply message, possibly null if the message could not be received, for example due to a timeout
      Throws:
      org.springframework.messaging.MessagingException - a messaging exception.
    • doSend

      protected void doSend(@Nullable String destination, org.springframework.messaging.Message<?> message)
      Specified by:
      doSend in class org.springframework.messaging.core.AbstractMessageSendingTemplate<String>
    • doSend

      protected void doSend(@Nullable String exchange, @Nullable String routingKey, org.springframework.messaging.Message<?> message)
    • receive

      public @Nullable org.springframework.messaging.Message<?> receive()
      Specified by:
      receive in interface org.springframework.messaging.core.MessageReceivingOperations<String>
      Overrides:
      receive in class org.springframework.messaging.core.AbstractMessageReceivingTemplate<String>
    • receiveAndConvert

      public <T> @Nullable T receiveAndConvert(Class<T> targetClass)
      Specified by:
      receiveAndConvert in interface org.springframework.messaging.core.MessageReceivingOperations<String>
      Overrides:
      receiveAndConvert in class org.springframework.messaging.core.AbstractMessageReceivingTemplate<String>
    • doReceive

      protected @Nullable org.springframework.messaging.Message<?> doReceive(String destination)
      Specified by:
      doReceive in class org.springframework.messaging.core.AbstractMessageReceivingTemplate<String>
    • doSendAndReceive

      protected @Nullable org.springframework.messaging.Message<?> doSendAndReceive(@Nullable String destination, org.springframework.messaging.Message<?> requestMessage)
      Specified by:
      doSendAndReceive in class org.springframework.messaging.core.AbstractMessagingTemplate<String>
    • doSendAndReceive

      protected @Nullable org.springframework.messaging.Message<?> doSendAndReceive(@Nullable String exchange, @Nullable String routingKey, org.springframework.messaging.Message<?> requestMessage)
    • convertAmqpMessage

      protected @Nullable org.springframework.messaging.Message<?> convertAmqpMessage(@Nullable org.springframework.amqp.core.Message message)
    • convertAmqpException

      protected org.springframework.messaging.MessagingException convertAmqpException(RuntimeException ex)