Top Description Methods
org.springframework.messaging.support

public Interface ChannelInterceptor

Known Direct Subinterfaces
org.springframework.messaging.support.ExecutorChannelInterceptor
Known Direct Implementers
org.springframework.messaging.support.ImmutableMessageChannelInterceptor, org.springframework.messaging.simp.broker.AbstractBrokerMessageHandler.UnsentDisconnectChannelInterceptor
Imports
org.springframework.lang.Nullable, org.springframework.messaging.Message, .MessageChannel

Interface for interceptors that are able to view and/or modify the Messages being sent-to and/or received-from a MessageChannel.
Authors
Mark Fisher, Rossen Stoyanchev
Since
4.0
See Also
Message, MessageChannel

Method Summary

Modifier and TypeMethod and Description
public default void
afterReceiveCompletion(Message<?> message, MessageChannel channel, Exception ex)

Invoked after the completion of a receive regardless of any exception that have been raised thus allowing for proper resource cleanup.

public default void
afterSendCompletion(Message<?> message, MessageChannel channel, boolean sent, Exception ex)

Invoked after the completion of a send regardless of any exception that have been raised thus allowing for proper resource cleanup.

public default Message<?>
postReceive(Message<?> message, MessageChannel channel)

Invoked immediately after a Message has been retrieved but before it is returned to the caller.

public default void
postSend(Message<?> message, MessageChannel channel, boolean sent)

Invoked immediately after the send invocation.

public default boolean
preReceive(MessageChannel channel)

Invoked as soon as receive is called and before a Message is actually retrieved.

public default Message<?>
preSend(Message<?> message, MessageChannel channel)

Invoked before the Message is actually sent to the channel.

Method Detail

afterReceiveCompletionback to summary
public default void afterReceiveCompletion(Message<?> message, MessageChannel channel, Exception ex)

Invoked after the completion of a receive regardless of any exception that have been raised thus allowing for proper resource cleanup.

Note that this will be invoked only if preReceive successfully completed and returned true.

Since
4.1
afterSendCompletionback to summary
public default void afterSendCompletion(Message<?> message, MessageChannel channel, boolean sent, Exception ex)

Invoked after the completion of a send regardless of any exception that have been raised thus allowing for proper resource cleanup.

Note that this will be invoked only if preSend successfully completed and returned a Message, i.e. it did not return null.

Since
4.1
postReceiveback to summary
public default Message<?> postReceive(Message<?> message, MessageChannel channel)

Invoked immediately after a Message has been retrieved but before it is returned to the caller. The Message may be modified if necessary; null aborts further interceptor invocations. This only applies to PollableChannels.

Annotations
@Nullable
postSendback to summary
public default void postSend(Message<?> message, MessageChannel channel, boolean sent)

Invoked immediately after the send invocation. The boolean value argument represents the return value of that invocation.

preReceiveback to summary
public default boolean preReceive(MessageChannel channel)

Invoked as soon as receive is called and before a Message is actually retrieved. If the return value is 'false', then no Message will be retrieved. This only applies to PollableChannels.

preSendback to summary
public default Message<?> preSend(Message<?> message, MessageChannel channel)

Invoked before the Message is actually sent to the channel. This allows for modification of the Message if necessary. If this method returns null then the actual send invocation will not occur.

Annotations
@Nullable