クラス MessageMappingMessageHandler
- 実装されているすべてのインターフェース:
Aware、BeanNameAware、InitializingBean、ApplicationContextAware、EmbeddedValueResolverAware、ReactiveMessageHandler
- 既知の直属サブクラス
RSocketMessageHandler
@MessageMapping メソッドを介したリアクティブでノンブロッキングなメッセージ処理のための AbstractMethodMessageHandler の拡張。デフォルトでは、そのようなメソッドは @Controller Spring Bean で検出されますが、これは AbstractMethodMessageHandler.setHandlerPredicate(Predicate) で変更できます。 受信メッセージのペイロードは、PayloadMethodArgumentResolver を使用して、構成された setDecoders(List) デコーダーを介してデコードされます。
戻り値のデフォルトの処理はありませんが、AbstractMethodMessageHandler.setReturnValueHandlerConfigurer(org.springframework.messaging.handler.invocation.reactive.ReturnValueHandlerConfigurer) を使用してカスタムの戻り値ハンドラーを構成できます。サブクラスは、initReturnValueHandlers() をオーバーライドして、デフォルトの戻り値ハンドラーを設定することもできます。
- 導入:
- 5.2
- 作成者:
- Rossen Stoyanchev
- 関連事項:
フィールドのサマリー
クラス org.springframework.messaging.handler.invocation.reactive.AbstractMethodMessageHandler から継承されたフィールド
loggerコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明voidprotected AbstractExceptionHandlerMethodResolvercreateExceptionMethodResolverFor(ClassSE<?> beanType) いくつかの条件(たとえば、@MessageExceptionHandlerの存在)に基づいて例外処理メソッドを検索するAbstractExceptionHandlerMethodResolverの具体的なインスタンスを作成します。protected CompositeMessageConditiongetCondition(AnnotatedElementSE element) 指定されたアノテーション付き要素のマッピング条件を決定します。設定された ConversionService を返します。構成されたデコーダーを返します。protected RouteMatcher.RoutegetDestination(Message<?> message) 指定されたメッセージから宛先を抽出します。指定されたマッピングがある場合、文字列ベースの宛先を返します。直接ルックアップで一致を見つけるために使用できます(つまりprotected ComparatorSE<CompositeMessageCondition>getMappingComparator(Message<?> message) 一致するマッピングをソートするためのコンパレーターを返します。protected CompositeMessageConditiongetMappingForMethod(MethodSE method, ClassSE<?> handlerType) 存在する場合は、指定されたメソッドのマッピングを取得します。protected CompositeMessageConditiongetMatchingMapping(CompositeMessageCondition mapping, Message<?> message) マッピングが現在のメッセージと一致するかどうかを確認し、現在のリクエストに関連する条件を含む新しいマッピングを返す可能性があります。メッセージをハンドラーにマップするために使用されるRouteMatcherを返します。設定された Validator インスタンスを返します。protected reactor.core.publisher.Mono<VoidSE>handleMatch(CompositeMessageCondition mapping, HandlerMethod handlerMethod, Message<?> message) protected ListSE<? extends HandlerMethodArgumentResolver>使用する引数リゾルバーのリストを返します。protected ListSE<? extends HandlerMethodReturnValueHandler>使用する戻り値ハンドラーのリストを返します。protected RouteMatcherRouteMatcherを入手して実際に使用してください。protected StringSE[]processDestinations(StringSE[] destinations) 指定された宛先のプレースホルダーを解決します。voidこのメソッドを使用して、グローバルに適用可能な@MessageExceptionHandlerメソッドを含む可能性のあるMessagingAdviceBeanを登録します。voidsetConversionService(ConversionService conversionService) 宛先変数やヘッダーなどの文字列ベースの値の型変換に使用するConversionServiceを構成します。voidsetDecoders(ListSE<? extends Decoder<?>> decoders) 受信ペイロードに使用するデコーダーを構成します。voidsetEmbeddedValueResolver(StringValueResolver resolver) StringValueResolver を設定して、埋め込まれた定義値の解決に使用します。voidsetRouteMatcher(RouteMatcher routeMatcher) RouteMatcherを設定して、設定されているルートパターンに基づいてメッセージをハンドラーにマッピングするために使用します。voidsetValidator(Validator validator) @Payload引数の検証に使用される Validator インスタンスを設定します。クラス org.springframework.messaging.handler.invocation.reactive.AbstractMethodMessageHandler から継承されたメソッド
detectHandlerMethods, extendMapping, getApplicationContext, getArgumentResolverConfigurer, getArgumentResolvers, getBeanName, getDestinationLookup, getHandlerMethods, getHandlerPredicate, getReactiveAdapterRegistry, getReturnValueHandlerConfigurer, handleMessage, handleNoMatch, registerExceptionHandlerAdvice, registerHandlerMethod, setApplicationContext, setArgumentResolverConfigurer, setBeanName, setHandlerPredicate, setHandlers, setReactiveAdapterRegistry, setReturnValueHandlerConfigurer
コンストラクターの詳細
MessageMappingMessageHandler
public MessageMappingMessageHandler()
メソッドの詳細
setDecoders
受信ペイロードに使用するデコーダーを構成します。getDecoders
構成されたデコーダーを返します。setValidator
@Payload引数の検証に使用される Validator インスタンスを設定します。getValidator
設定された Validator インスタンスを返します。setRouteMatcher
RouteMatcherを設定して、設定されているルートパターンに基づいてメッセージをハンドラーにマッピングするために使用します。デフォルトでは、
SimpleRouteMatcherが使用され、AntPathMatcherに "." が付いています。セパレータ。効率を上げるには、代わりにspring-webのPathPatternRouteMatcherを使用することを検討してください。getRouteMatcher
メッセージをハンドラーにマップするために使用されるRouteMatcherを返します。コンポーネントが初期化される前はnullである可能性があります。obtainRouteMatcher
RouteMatcherを入手して実際に使用してください。- 戻り値:
- RouteMatcher (非
null) - 例外:
IllegalStateExceptionSE- RouteMatcher セットがない場合- 導入:
- 5.0
setConversionService
宛先変数やヘッダーなどの文字列ベースの値の型変換に使用するConversionServiceを構成します。デフォルトでは、
DefaultFormattingConversionServiceが使用されます。- パラメーター:
conversionService- 使用する変換サービス
getConversionService
設定された ConversionService を返します。setEmbeddedValueResolver
インターフェースからコピーされた説明:EmbeddedValueResolverAwareStringValueResolver を設定して、埋め込まれた定義値の解決に使用します。- 次で指定:
- インターフェース
EmbeddedValueResolverAwareのsetEmbeddedValueResolver
registerMessagingAdvice
このメソッドを使用して、グローバルに適用可能な@MessageExceptionHandlerメソッドを含む可能性のあるMessagingAdviceBeanを登録します。メモ: spring-messaging は spring-web に依存しないため、
@ControllerAdviceBean の登録を明示的にサポートすることはできません。次のアダプターコードを使用して、ここで@ControllerAdviceBean を登録できます。ControllerAdviceBean.findAnnotatedBeans(context).forEach(bean -> messageHandler.registerMessagingAdvice(new ControllerAdviceWrapper(bean)); public class ControllerAdviceWrapper implements MessagingAdviceBean { private final ControllerAdviceBean delegate; // delegate all methods }- パラメーター:
bean-@MessageExceptionHandlerメソッドをチェックするための Bean- 導入:
- 5.3.5
afterPropertiesSet
public void afterPropertiesSet()インターフェースからコピーされた説明:InitializingBeanすべての Bean プロパティを設定し、BeanFactoryAware、ApplicationContextAwareなどを満たした後、包含BeanFactoryによって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
- 次で指定:
- インターフェース
InitializingBeanのafterPropertiesSet - オーバーライド:
- クラス
AbstractMethodMessageHandler<CompositeMessageCondition>のafterPropertiesSet
initArgumentResolvers
クラスからコピーされた説明:AbstractMethodMessageHandler使用する引数リゾルバーのリストを返します。サブクラスでは、
AbstractMethodMessageHandler.setArgumentResolverConfigurer(org.springframework.messaging.handler.invocation.reactive.ArgumentResolverConfigurer)を介して構成されたカスタム引数型も考慮する必要があります。initReturnValueHandlers
クラスからコピーされた説明:AbstractMethodMessageHandler使用する戻り値ハンドラーのリストを返します。サブクラスは、
AbstractMethodMessageHandler.setReturnValueHandlerConfigurer(org.springframework.messaging.handler.invocation.reactive.ReturnValueHandlerConfigurer)を介して構成されたカスタム戻り値型も考慮する必要があります。getMappingForMethod
@Nullable protected CompositeMessageCondition getMappingForMethod(MethodSE method, ClassSE<?> handlerType) クラスからコピーされた説明:AbstractMethodMessageHandler存在する場合は、指定されたメソッドのマッピングを取得します。- 次で指定:
- クラス
AbstractMethodMessageHandler<CompositeMessageCondition>のgetMappingForMethod - パラメーター:
method- チェックする方法handlerType- ハンドラー型、場合によってはメソッドの宣言クラスのサブ型- 戻り値:
- マッピング、またはメソッドがマッピングされていない場合は
null
getCondition
指定されたアノテーション付き要素のマッピング条件を決定します。- パラメーター:
element- チェックする要素- 戻り値:
- 条件、または
null
processDestinations
指定された宛先のプレースホルダーを解決します。- パラメーター:
destinations- 宛先- 戻り値:
- 処理された宛先を持つ新しい配列または同じ配列
getDirectLookupMappings
クラスからコピーされた説明:AbstractMethodMessageHandler指定されたマッピングがある場合、文字列ベースの宛先を返します。これは、直接ルックアップ(つまり、非パターン)で一致を見つけるために使用できます。注意 : これは完全にオプションです。サブクラスのマッピングメタデータは、直接検索も文字列ベースの宛先もサポートしない場合があります。
getDestination
クラスからコピーされた説明:AbstractMethodMessageHandler指定されたメッセージから宛先を抽出します。getMatchingMapping
@Nullable protected CompositeMessageCondition getMatchingMapping(CompositeMessageCondition mapping, Message<?> message) クラスからコピーされた説明:AbstractMethodMessageHandlerマッピングが現在のメッセージと一致するかどうかを確認し、現在のリクエストに関連する条件を含む新しいマッピングを返す可能性があります。- 次で指定:
- クラス
AbstractMethodMessageHandler<CompositeMessageCondition>のgetMatchingMapping - パラメーター:
mapping- 一致を取得するマッピングmessage- 処理されているメッセージ- 戻り値:
- 一致、または一致がない場合は
null
getMappingComparator
クラスからコピーされた説明:AbstractMethodMessageHandler一致するマッピングをソートするためのコンパレータを返します。返されたコンパレータは、「より良い」一致をより高い順に並べ替えます。- 次で指定:
- クラス
AbstractMethodMessageHandler<CompositeMessageCondition>のgetMappingComparator - パラメーター:
message- 現在のメッセージ- 戻り値:
- コンパレータ、決して
null
createExceptionMethodResolverFor
protected AbstractExceptionHandlerMethodResolver createExceptionMethodResolverFor(ClassSE<?> beanType) クラスからコピーされた説明:AbstractMethodMessageHandlerいくつかの条件(たとえば、@MessageExceptionHandlerの存在)に基づいて例外処理メソッドを検索するAbstractExceptionHandlerMethodResolverの具体的なインスタンスを作成します。- 次で指定:
- クラス
AbstractMethodMessageHandler<CompositeMessageCondition>のcreateExceptionMethodResolverFor - パラメーター:
beanType- 処理中に例外が発生したクラス- 戻り値:
- 使用するリゾルバー
handleMatch
protected reactor.core.publisher.Mono<VoidSE> handleMatch(CompositeMessageCondition mapping, HandlerMethod handlerMethod, Message<?> message) - オーバーライド:
- クラス
AbstractMethodMessageHandler<CompositeMessageCondition>のhandleMatch