Class MutableMessage<T>

java.lang.Object
org.springframework.integration.support.MutableMessage<T>
Type Parameters:
T - the payload type.
All Implemented Interfaces:
Serializable, org.springframework.messaging.Message<T>

public class MutableMessage<T> extends Object implements org.springframework.messaging.Message<T>, Serializable
An implementation of Message with a generic payload. Unlike GenericMessage, this message (or its headers) can be modified after creation. Great care must be taken, when mutating messages, that some other element/thread is not concurrently using the message. Also note that any in-memory stores (such as SimpleMessageStore) may have a reference to the message and changes will be reflected there too.

IMPORTANT: Mutable messages may share state (such as message headers); such messages should never be exposed to other components or undesirable side-effects may result.

It is generally recommended that messages transferred between components should always be immutable unless great care is taken with their use.

Since:
4.0
See Also:
  • Constructor Details

    • MutableMessage

      public MutableMessage(T payload)
    • MutableMessage

      public MutableMessage(T payload, @Nullable Map<String,Object> headers)
    • MutableMessage

      protected MutableMessage(T payload, MutableMessageHeaders headers)
  • Method Details

    • getHeaders

      public MutableMessageHeaders getHeaders()
      Specified by:
      getHeaders in interface org.springframework.messaging.Message<T>
    • getPayload

      public T getPayload()
      Specified by:
      getPayload in interface org.springframework.messaging.Message<T>
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object