org.springframework.jms.core

## Interface ProducerCallback<T>

- Type Parameters:
    `T` - the result type
  Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

      @FunctionalInterface
      public interface ProducerCallback<T>

  Callback for sending a message to a JMS destination.

  To be used with `JmsTemplate`'s callback methods that take a `ProducerCallback` argument, often implemented as an anonymous inner class or as a lambda expression.

  The typical implementation will perform multiple operations on the supplied JMS `Session` and `MessageProducer`.

  Since:
    1.1
  Author:
    Mark Pollack
  See Also:
    `JmsTemplate.execute(ProducerCallback)`, `JmsTemplate.execute(javax.jms.Destination, ProducerCallback)`, `JmsTemplate.execute(String, ProducerCallback)`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `T` | `doInJms(Session session, MessageProducer producer)` Perform operations on the given `Session` and `MessageProducer`.

- - ### Method Detail

    - #### doInJms

          @Nullable
          T doInJms(Session session,
                              MessageProducer producer)
                       throws JMSException

      Perform operations on the given `Session` and `MessageProducer`.

      The message producer is not associated with any destination unless when specified in the JmsTemplate call.

      Parameters:
        `session` - the JMS `Session` object to use
        `producer` - the JMS `MessageProducer` object to use
      Returns:
        a result object from working with the `Session`, if any (or `null` if none)
      Throws:
        `JMSException` - if thrown by JMS API methods