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