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