public interface ExecutorChannelInterceptor extends ChannelInterceptor
Executor
SE を介した特定のサブスクライバーへの Message
の非同期送信をインターセプトするコールバックを備えた ChannelInterceptor
の拡張。Executor
で構成できる MessageChannel
実装でサポートされます。Message
, MessageChannel
, MessageHandler
修飾子と型 | メソッドと説明 |
---|---|
default void | afterMessageHandled(Message<?> message, MessageChannel channel, MessageHandler handler, ExceptionSE ex) 結果に関係なくターゲット MessageHandler を呼び出した後、Executor に送信された Runnable SE 内で呼び出されます(つまり |
default Message<?> | beforeHandle(Message<?> message, MessageChannel channel, MessageHandler handler) ターゲット MessageHandler を呼び出してメッセージを処理する直前に、Executor に送信された Runnable SE 内で呼び出されます。 |
afterReceiveCompletion, afterSendCompletion, postReceive, postSend, preReceive, preSend
@Nullable default Message<?> beforeHandle(Message<?> message, MessageChannel channel, MessageHandler handler)
Runnable
SE 内で呼び出されます。必要に応じて、または null
が返されたときに MessageHandler が呼び出されない場合にメッセージを変更できます。message
- 処理するメッセージ channel
- メッセージの送信先のチャネル handler
- メッセージを処理するターゲットハンドラー null
default void afterMessageHandled(Message<?> message, MessageChannel channel, MessageHandler handler, @Nullable ExceptionSE ex)
Runnable
SE 内で呼び出されるため、適切なリソースのクリーンアップが可能になります。 これは、beforeHandle が正常に完了してメッセージを返した場合、つまり null
を返さなかった場合にのみ呼び出されることに注意してください。
message
- 処理されたメッセージ channel
- メッセージの送信先のチャネル handler
- メッセージを処理したターゲットハンドラー ex
- ハンドラーによって発生する可能性のある例外