Interface JmsClient


public interface JmsClient
A fluent JmsClient with common send and receive operations against a JMS destination, dealing with Spring's common Message or with payload values. This is effectively an alternative to JmsMessagingTemplate, also delegating to Spring's JmsTemplate for performing actual operations.

Note: Operations in this interface throw MessagingException instead of the JMS-specific JmsException, aligning with the spring-messaging module and its other client operation handles. Message conversion is preferably done through the common MessageConverter but can also be customized at the JmsTemplate.setMessageConverter(MessageConverter) level.

This client provides reusable operation handles which can be configured with custom QoS settings. Note that any use of such explicit settings will override administrative provider settings (see JmsTemplate.setExplicitQosEnabled(boolean)).

An example for sending a converted payload to a queue:

client.destination("myQueue")
    .withTimeToLive(1000)
    .send("myPayload");  // optionally with a headers Map next to the payload

An example for receiving a converted payload from a queue:

Optional<String> payload = client.destination("myQueue")
    .withReceiveTimeout(1000)
    .receive(String.class);

An example for sending a message with a payload to a queue:

Message<?> message =
     MessageBuilder.withPayload("myPayload").build();  // optionally with headers
client.destination("myQueue")
    .withTimeToLive(1000)
    .send(message);

An example for receiving a message with a payload from a queue:

Optional<Message<?>> message = client.destination("myQueue")
    .withReceiveTimeout(1000)
    .receive();
Since:
7.0
Author:
Juergen Hoeller, Brian Clozel
See Also:
  • Method Details

    • destination

      JmsClient.OperationSpec destination(jakarta.jms.Destination destination)
      Provide an operation handle for the given JMS destination.
      Parameters:
      destination - the JMS Destination object
      Returns:
      a reusable operation handle bound to the destination
      See Also:
      • Queue
      • Topic
    • destination

      JmsClient.OperationSpec destination(String destinationName)
      Provide an operation handle for the specified JMS destination.
      Parameters:
      destinationName - a name resolving to a JMS Destination
      Returns:
      a reusable operation handle bound to the destination
      See Also:
    • create

      static JmsClient create(jakarta.jms.ConnectionFactory connectionFactory)
      Create a new JmsClient for the given ConnectionFactory.
      Parameters:
      connectionFactory - the factory to obtain JMS connections from
    • create

      static JmsClient create(JmsOperations jmsTemplate)
      Create a new JmsClient for the given JmsOperations.
      Parameters:
      jmsTemplate - the JmsTemplate to use for performing operations (can be a custom JmsOperations implementation as well)
    • builder

      static JmsClient.Builder builder(jakarta.jms.ConnectionFactory connectionFactory)
      Obtain a JmsClient builder that will use the given connection factory for JMS connections.
      Parameters:
      connectionFactory - the factory to obtain JMS connections from
      Returns:
      a JmsClient builder that uses the given connection factory.
    • builder

      static JmsClient.Builder builder(JmsOperations jmsTemplate)
      Obtain a JmsClient builder based on the configuration of the given JmsTemplate.
      Parameters:
      jmsTemplate - the JmsTemplate to use for performing operations (can be a custom JmsOperations implementation as well)
      Returns:
      a JmsClient builder that uses the given JMS template.