クラス SimpAnnotationMethodMessageHandler
- 実装されたすべてのインターフェース:
Aware
、InitializingBean
、ApplicationContextAware
、EmbeddedValueResolverAware
、Lifecycle
、Phased
、SmartLifecycle
、MessageHandler
- 既知の直属サブクラス
WebSocketAnnotationMethodMessageHandler
@MessageMapping
および @SubscribeMapping
アノテーション付きメソッドに委譲するメッセージのハンドラー。テンプレート変数で Ant スタイルのパスパターンをサポートします。
- 導入:
- 4.0
- 作成者:
- Rossen Stoyanchev, Brian Clozel, Juergen Hoeller
フィールドサマリー
クラス org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler から継承されたフィールド
logger
インターフェース org.springframework.context.SmartLifecycle から継承されたフィールド
DEFAULT_PHASE
コンストラクターのサマリー
コンストラクター説明SimpAnnotationMethodMessageHandler
(SubscribableChannel clientInboundChannel, MessageChannel clientOutboundChannel, SimpMessageSendingOperations brokerTemplate) 指定されたメッセージチャネルとブローカーメッセージングテンプレートを使用して SimpAnnotationMethodMessageHandler のインスタンスを作成します。方法の概要
修飾子と型メソッド説明protected AbstractExceptionHandlerMethodResolver
createExceptionHandlerMethodResolverFor
(ClassSE<?> beanType) 設定されたConversionService
を返します。protected StringSE
getDestination
(Message<?> message) マッピングに含まれ、パターンではないため、直接ルックアップに適した戻り先。protected Log
InvocableHandlerMethod
に設定するロガーを返します。設定済みのヘッダー初期化子を返します。protected StringSE
getLookupDestination
(StringSE destination) (受信メッセージの)指定された宛先が構成済み宛先プレフィックスの 1 つと一致するかどうかを確認し、一致する場合は、一致したプレフィックスの後に宛先の残りの部分を返します。protected ComparatorSE<SimpMessageMappingInfo>
getMappingComparator
(Message<?> message) 一致するマッピングをソートするためのコンパレーターを返します。protected SimpMessageMappingInfo
getMappingForMethod
(MethodSE method, ClassSE<?> handlerType) ハンドラーメソッドのマッピングを提供します。protected SimpMessageMappingInfo
getMatchingMapping
(SimpMessageMappingInfo mapping, Message<?> message) マッピングが現在のメッセージと一致するかどうかを確認し、現在のリクエストに関連する条件を含む新しいマッピングを返す可能性があります。設定されたMessageConverter
を返します。一致する宛先に使用する PathMatcher 実装を返します。int
getPhase()
このライフサイクルオブジェクトが実行されるはずのフェーズを返します。protected Log
HandlerMethodReturnValueHandlerComposite
に設定するロガーを返します。設定された Validator インスタンスを返します。protected void
handleMatch
(SimpMessageMappingInfo mapping, HandlerMethod handlerMethod, StringSE lookupDestination, Message<?> message) protected ListSE<HandlerMethodArgumentResolver>
使用する引数リゾルバーのリストを返します。protected ListSE<? extends HandlerMethodReturnValueHandler>
使用する戻り値ハンドラーのリストを返します。protected boolean
指定された Bean 型をメッセージング処理メソッドに対してイントロスペクトする必要があるかどうか。final boolean
このコンポーネントが現在実行されているかどうかを確認します。protected StringSE[]
resolveEmbeddedValuesInDestinations
(StringSE[] destinations) 指定された宛先配列のプレースホルダー値を解決します。void
setConversionService
(ConversionService conversionService) メッセージヘッダー値などのメソッド引数を解決するときに使用するConversionService
を構成します。void
setDestinationPrefixes
(CollectionSE<StringSE> prefixes) このプロパティが設定されている場合、設定された接頭辞のいずれかに一致する宛先へのメッセージのみが処理に適しています。void
setEmbeddedValueResolver
(StringValueResolver resolver) StringValueResolver を設定して、埋め込まれた定義値の解決に使用します。void
setHeaderInitializer
(MessageHeaderInitializer headerInitializer) コントローラーの戻り値からメッセージを送信するHandlerMethodReturnValueHandlers
に渡すようにMessageHeaderInitializer
を構成します。void
setMessageConverter
(MessageConverter converter) メッセージのペイロードを特定の MIME 型の直列化された形式からターゲットメソッドパラメーターに一致するオブジェクトに変換するために使用するMessageConverter
を構成します。void
setPathMatcher
(PathMatcher pathMatcher) PathMatcher 実装を設定して、設定された宛先パターンに対して宛先を照合するために使用します。void
setPhase
(int phase) このハンドラーが実行されるフェーズを設定します。void
setValidator
(Validator validator) @Payload
引数の検証に使用される Validator インスタンスを設定します。final void
start()
このコンポーネントを起動します。final void
stop()
このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。final void
stop
(RunnableSE callback) Lifecycle コンポーネントが現在実行中の場合、停止する必要があることを示します。クラス org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler から継承されたメソッド
afterPropertiesSet, createHandlerMethod, detectHandlerMethods, getApplicationContext, getArgumentResolvers, getCustomArgumentResolvers, getCustomReturnValueHandlers, getDestinationPrefixes, getExceptionHandlerMethod, getHandlerMethods, getReturnValueHandlers, handleMessage, handleMessageInternal, handleNoMatch, processHandlerMethodException, registerExceptionHandlerAdvice, registerHandlerMethod, setApplicationContext, setArgumentResolvers, setCustomArgumentResolvers, setCustomReturnValueHandlers, setReturnValueHandlers, toString
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
インターフェース org.springframework.context.SmartLifecycle から継承されたメソッド
isAutoStartup
コンストラクターの詳細
SimpAnnotationMethodMessageHandler
public SimpAnnotationMethodMessageHandler(SubscribableChannel clientInboundChannel, MessageChannel clientOutboundChannel, SimpMessageSendingOperations brokerTemplate) 指定されたメッセージチャネルとブローカーメッセージングテンプレートを使用して SimpAnnotationMethodMessageHandler のインスタンスを作成します。- パラメーター:
clientInboundChannel
- クライアントからメッセージを受信するためのチャネル (たとえば、WebSocket クライアント)clientOutboundChannel
- クライアントへのメッセージのチャネル (たとえば、WebSocket クライアント)brokerTemplate
- アプリケーションメッセージをブローカーに送信するためのメッセージングテンプレート
メソッドの詳細
setDestinationPrefixes
このプロパティが設定されている場合、設定された接頭辞のいずれかに一致する宛先へのメッセージのみが処理に適しています。一致する場合、プレフィックスが削除され、宛先の残りの部分のみがメソッドマッピングの目的で使用されます。デフォルトでは、プレフィックスは設定されていません。この場合、すべてのメッセージが処理に適格です。
宛先の接頭辞はスラッシュで区切られた文字列であることが期待されているため、適切な接頭辞ベースの一致(つまり、完全なセグメントの一致)を確実にするために、欠落している場所にスラッシュが自動的に追加されます。
ただし、プレフィックスの後の宛先の残りの部分では、構成された
PathMatcher
に応じて異なる区切り文字 (たとえば、メッセージングでは一般に "." ) が使用される場合があることに注意してください。- オーバーライド:
- クラス
AbstractMethodMessageHandler<SimpMessageMappingInfo>
のsetDestinationPrefixes
setMessageConverter
メッセージのペイロードを特定の MIME 型の直列化された形式からターゲットメソッドパラメーターに一致するオブジェクトに変換するために使用するMessageConverter
を構成します。コンバーターは、メッセージブローカーにメッセージを送信するときにも使用されます。getMessageConverter
設定されたMessageConverter
を返します。setConversionService
メッセージヘッダー値などのメソッド引数を解決するときに使用するConversionService
を構成します。デフォルトでは、
DefaultFormattingConversionService
が使用されます。getConversionService
設定されたConversionService
を返します。setPathMatcher
PathMatcher 実装を設定して、設定された宛先パターンに対して宛先を照合するために使用します。デフォルトでは、
AntPathMatcher
が使用されます。getPathMatcher
一致する宛先に使用する PathMatcher 実装を返します。getValidator
設定された Validator インスタンスを返します。setValidator
@Payload
引数の検証に使用される Validator インスタンスを設定します。setEmbeddedValueResolver
インターフェースからコピーされた説明:EmbeddedValueResolverAware
StringValueResolver を設定して、埋め込まれた定義値の解決に使用します。- 次で指定:
- インターフェース
EmbeddedValueResolverAware
のsetEmbeddedValueResolver
setHeaderInitializer
コントローラーの戻り値からメッセージを送信するHandlerMethodReturnValueHandlers
に渡すようにMessageHeaderInitializer
を構成します。デフォルトでは、このプロパティは設定されていません。
getHeaderInitializer
設定済みのヘッダー初期化子を返します。setPhase
public void setPhase(int phase) このハンドラーが実行されるフェーズを設定します。デフォルトでは
SmartLifecycle.DEFAULT_PHASE
ですが、@EnableWebSocketMessageBroker
構成では 0 に設定されます。- 導入:
- 6.1.4
getPhase
public int getPhase()インターフェースからコピーされた説明:SmartLifecycle
このライフサイクルオブジェクトが実行されるはずのフェーズを返します。デフォルトの実装は、通常の
Lifecycle
実装の前にstop()
コールバックを実行できるようにするためにSmartLifecycle.DEFAULT_PHASE
を返します。- 次で指定:
- インターフェース
Phased
のgetPhase
- 次で指定:
- インターフェース
SmartLifecycle
のgetPhase
- 関連事項:
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
を返します。initArgumentResolvers
クラスからコピーされた説明:AbstractMethodMessageHandler
使用する引数リゾルバーのリストを返します。AbstractMethodMessageHandler.setArgumentResolvers(java.util.List<org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver>)
を介してリゾルバーがまだ設定されていない場合にのみ呼び出されます。サブクラスでは、
AbstractMethodMessageHandler.setCustomArgumentResolvers(java.util.List<org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver>)
を介して構成されたカスタム引数型も考慮する必要があります。initReturnValueHandlers
クラスからコピーされた説明:AbstractMethodMessageHandler
使用する戻り値ハンドラーのリストを返します。戻り値ハンドラーがAbstractMethodMessageHandler.setReturnValueHandlers(java.util.List<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandler>)
を介してまだ設定されていない場合にのみ呼び出されます。サブクラスは、
AbstractMethodMessageHandler.setCustomReturnValueHandlers(java.util.List<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandler>)
を介して構成されたカスタム戻り値型も考慮する必要があります。getReturnValueHandlerLogger
クラスからコピーされた説明:AbstractMethodMessageHandler
HandlerMethodReturnValueHandlerComposite
に設定するロガーを返します。getHandlerMethodLogger
クラスからコピーされた説明:AbstractMethodMessageHandler
InvocableHandlerMethod
に設定するロガーを返します。- オーバーライド:
- クラス
AbstractMethodMessageHandler<SimpMessageMappingInfo>
のgetHandlerMethodLogger
isHandler
クラスからコピーされた説明:AbstractMethodMessageHandler
指定された Bean 型をメッセージング処理メソッドに対してイントロスペクトする必要があるかどうか。- 次で指定:
- クラス
AbstractMethodMessageHandler<SimpMessageMappingInfo>
のisHandler
getMappingForMethod
@Nullable protected SimpMessageMappingInfo getMappingForMethod(MethodSE method, ClassSE<?> handlerType) クラスからコピーされた説明:AbstractMethodMessageHandler
ハンドラーメソッドのマッピングを提供します。- 次で指定:
- クラス
AbstractMethodMessageHandler<SimpMessageMappingInfo>
のgetMappingForMethod
- パラメーター:
method
- マッピングを提供する方法handlerType
- ハンドラー型、場合によってはメソッドの宣言クラスのサブ型- 戻り値:
- マッピング、またはメソッドがマッピングされていない場合は
null
resolveEmbeddedValuesInDestinations
指定された宛先配列のプレースホルダー値を解決します。- 戻り値:
- 更新された宛先を持つ新しい配列
- 導入:
- 4.2
getDirectLookupDestinations
クラスからコピーされた説明:AbstractMethodMessageHandler
マッピングに含まれ、パターンではないため、直接ルックアップに適した戻り先。getDestination
getLookupDestination
クラスからコピーされた説明:AbstractMethodMessageHandler
(受信メッセージの)指定された宛先が構成済み宛先プレフィックスの 1 つと一致するかどうかを確認し、一致する場合は、一致したプレフィックスの後に宛先の残りの部分を返します。一致するプレフィックスがない場合は、
null
を返します。宛先プレフィックスがない場合は、宛先をそのまま返します。
- オーバーライド:
- クラス
AbstractMethodMessageHandler<SimpMessageMappingInfo>
のgetLookupDestination
getMatchingMapping
@Nullable protected SimpMessageMappingInfo getMatchingMapping(SimpMessageMappingInfo mapping, Message<?> message) クラスからコピーされた説明:AbstractMethodMessageHandler
マッピングが現在のメッセージと一致するかどうかを確認し、現在のリクエストに関連する条件を含む新しいマッピングを返す可能性があります。- 次で指定:
- クラス
AbstractMethodMessageHandler<SimpMessageMappingInfo>
のgetMatchingMapping
- パラメーター:
mapping
- 一致を取得するマッピングmessage
- 処理されているメッセージ- 戻り値:
- 一致、または一致がない場合は
null
getMappingComparator
クラスからコピーされた説明:AbstractMethodMessageHandler
一致するマッピングをソートするためのコンパレータを返します。返されたコンパレータは、「より良い」一致をより高い順に並べ替えます。- 次で指定:
- クラス
AbstractMethodMessageHandler<SimpMessageMappingInfo>
のgetMappingComparator
- パラメーター:
message
- 現在のメッセージ- 戻り値:
- コンパレータ、決して
null
handleMatch
protected void handleMatch(SimpMessageMappingInfo mapping, HandlerMethod handlerMethod, StringSE lookupDestination, Message<?> message) - オーバーライド:
- クラス
AbstractMethodMessageHandler<SimpMessageMappingInfo>
のhandleMatch
createExceptionHandlerMethodResolverFor
protected AbstractExceptionHandlerMethodResolver createExceptionHandlerMethodResolverFor(ClassSE<?> beanType)