クラス UserDestinationMessageHandler
- 実装されたすべてのインターフェース:
Lifecycle
、Phased
、SmartLifecycle
、MessageHandler
MessageHandler
。「ユーザー」宛先のメッセージをリッスンし、その宛先をユーザーのアクティブセッションに固有の実際のターゲット宛先に変換し、解決されたメッセージをブローカーチャネルに送信して配信します。
- 導入:
- 4.0
- 作成者:
- Rossen Stoyanchev
フィールドサマリー
インターフェース org.springframework.context.SmartLifecycle から継承されたフィールド
DEFAULT_PHASE
コンストラクターのサマリー
コンストラクターコンストラクター説明UserDestinationMessageHandler
(SubscribableChannel clientInboundChannel, SubscribableChannel brokerChannel, UserDestinationResolver resolver) 指定されたクライアントとブローカーチャネルをサブスクライブしてインスタンスを作成し、それぞれからのメッセージを処理して、解決されたメッセージをブローカーチャネルに送信します。メソッドのサマリー
修飾子と型メソッド説明未解決のメッセージの構成済み宛先を返します。解決されたメッセージをブローカーチャネルに送信するために使用されるメッセージングテンプレートを返します。設定済みのヘッダー初期化子を返します。設定されたUserDestinationResolver
を返します。void
handleMessage
(Message<?> message) 指定されたメッセージを処理します。final boolean
このコンポーネントが現在実行されているかどうかを確認します。void
setBroadcastDestination
(StringSE destination) ユーザーが接続されていないため未解決のままになるメッセージをブロードキャストする宛先を設定します。void
setHeaderInitializer
(MessageHeaderInitializer headerInitializer) カスタムMessageHeaderInitializer
を構成して、解決されたターゲットメッセージのヘッダーを初期化します。final void
start()
このコンポーネントを起動します。final void
stop()
このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。final void
stop
(RunnableSE callback) Lifecycle コンポーネントが現在実行中の場合、停止する必要があることを示します。toString()
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
インターフェース org.springframework.context.SmartLifecycle から継承されたメソッド
getPhase, isAutoStartup
コンストラクターの詳細
UserDestinationMessageHandler
public UserDestinationMessageHandler(SubscribableChannel clientInboundChannel, SubscribableChannel brokerChannel, UserDestinationResolver resolver) 指定されたクライアントとブローカーチャネルをサブスクライブしてインスタンスを作成し、それぞれからのメッセージを処理して、解決されたメッセージをブローカーチャネルに送信します。- パラメーター:
clientInboundChannel
- クライアントから受信したメッセージ。brokerChannel
- ブローカーに送信されたメッセージ。resolver
- 「ユーザー」宛先のリゾルバー。
メソッドの詳細
getUserDestinationResolver
設定されたUserDestinationResolver
を返します。setBroadcastDestination
ユーザーが接続されていないため未解決のままになるメッセージをブロードキャストする宛先を設定します。マルチアプリケーションサーバーのシナリオでは、これにより他のアプリケーションサーバーが試す機会が与えられます。デフォルトでは、これは設定されていません。
- パラメーター:
destination
- ターゲット宛先。
getBroadcastDestination
未解決のメッセージの構成済み宛先を返します。getBrokerMessagingTemplate
解決されたメッセージをブローカーチャネルに送信するために使用されるメッセージングテンプレートを返します。setHeaderInitializer
カスタムMessageHeaderInitializer
を構成して、解決されたターゲットメッセージのヘッダーを初期化します。デフォルトでは、これは設定されていません。
getHeaderInitializer
設定済みのヘッダー初期化子を返します。start
public final void start()インターフェースからコピーされた説明:Lifecycle
このコンポーネントを起動します。コンポーネントがすでに実行されている場合は、例外をスローしないでください。
コンテナーの場合、これは適用されるすべてのコンポーネントに開始シグナルを伝播します。
stop
public final void stop()インターフェースからコピーされた説明:Lifecycle
このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。非同期停止動作が必要な場合は、SmartLifecycle
とそのstop(Runnable)
バリアントの実装を検討してください。この停止通知は破棄前に送信されるとは限らないことに注意してください。通常のシャットダウンでは、一般的な破棄コールバックが伝播される前に、
Lifecycle
Bean は最初に停止通知を受信します。ただし、コンテキストの存続期間中のホットリフレッシュまたは中断されたリフレッシュ試行では、特定の Bean の destroy メソッドが、停止シグナルを事前に考慮することなく呼び出されます。コンポーネントが実行されていない(まだ開始されていない)場合は、例外をスローしないでください。
コンテナーの場合、これは停止シグナルを適用するすべてのコンポーネントに伝播します。
stop
インターフェースからコピーされた説明:SmartLifecycle
Lifecycle コンポーネントが現在実行中の場合、停止する必要があることを示します。提供されたコールバックは、
LifecycleProcessor
によって使用され、共通のシャットダウン順序値を持つすべてのコンポーネントの順序付けられた、潜在的に同時のシャットダウンをサポートします。コールバック は、SmartLifecycle
コンポーネントが実際に停止した後に実行する必要があります。LifecycleProcessor
は、stop
メソッドのこのバリアントのみを呼び出します。つまり、SmartLifecycle
実装では、このメソッドの実装内に明示的に委譲されない限り、Lifecycle.stop()
は呼び出されません。デフォルトの実装は
Lifecycle.stop()
に委譲し、呼び出しスレッドで指定されたコールバックをすぐにトリガーします。2 つの間に同期がないことに注意してください。カスタム実装では、少なくとも共通のライフサイクルモニター(存在する場合)内に同じ手順を入れたい場合があります。- 次で指定:
- インターフェース
SmartLifecycle
のstop
- 関連事項:
isRunning
public final boolean isRunning()インターフェースからコピーされた説明:Lifecycle
このコンポーネントが現在実行されているかどうかを確認します。コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、
true
を返します。handleMessage
インターフェースからコピーされた説明:MessageHandler
指定されたメッセージを処理します。- 次で指定:
- インターフェース
MessageHandler
のhandleMessage
- パラメーター:
message
- 処理するメッセージ- 例外:
MessagingException
- ハンドラーがメッセージの処理に失敗した場合
toString