T - 情報マッピング情報を含むオブジェクトの型 public abstract class AbstractMethodMessageHandler<T> extends ObjectSE implements ReactiveMessageHandler, ApplicationContextAware, InitializingBean, BeanNameAware
メッセージ処理中に発生した例外を処理するための例外処理メソッドの検出と呼び出しもサポートしています。
| コンストラクターと説明 |
|---|
AbstractMethodMessageHandler() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | afterPropertiesSet() |
protected abstract AbstractExceptionHandlerMethodResolver | createExceptionMethodResolverFor(ClassSE<?> beanType) いくつかの条件に基づいて例外処理メソッドを見つける AbstractExceptionHandlerMethodResolver の具象インスタンスを作成します。 |
protected void | detectHandlerMethods(ObjectSE handler) 指定されたハンドラーにメッセージを処理できるメソッドがあるかどうかを検出し、ある場合は抽出されたマッピング情報に登録します。 |
protected T | extendMapping(T mapping, HandlerMethod handlerMethod) このメソッドは、マッピングが追加される直前に呼び出されます。 |
ApplicationContext | getApplicationContext() |
ArgumentResolverConfigurer | getArgumentResolverConfigurer() ハンドラーメソッドの引数に構成されたカスタムリゾルバーを返します。 |
protected HandlerMethodArgumentResolverComposite | getArgumentResolvers()afterPropertiesSet() 中に初期化された引数リゾルバーを返します。 |
StringSE | getBeanName() |
protected abstract RouteMatcher.Route | getDestination(Message<?> message) 指定されたメッセージから宛先を抽出します。 |
MultiValueMap<StringSE, T> | getDestinationLookup() マッピングを直接参照して、読み取り専用の多値マップを返します(例: |
protected abstract SetSE<StringSE> | getDirectLookupMappings(T mapping) 指定されたマッピングがある場合、文字列ベースの宛先を返します。直接ルックアップで一致を見つけるために使用できます(つまり |
MapSE<T, HandlerMethod> | getHandlerMethods() すべてのハンドラーメソッドとそのマッピングを含む読み取り専用マップを返します。 |
PredicateSE<ClassSE<?>> | getHandlerPredicate()configured ハンドラー述語を返します。 |
protected abstract ComparatorSE<T> | getMappingComparator(Message<?> message) 一致するマッピングをソートするためのコンパレーターを返します。 |
protected abstract T | getMappingForMethod(MethodSE method, ClassSE<?> handlerType) 存在する場合は、指定されたメソッドのマッピングを取得します。 |
protected abstract T | getMatchingMapping(T mapping, Message<?> message) マッピングが現在のメッセージと一致するかどうかを確認し、現在のリクエストに関連する条件を含む新しいマッピングを返す可能性があります。 |
ReactiveAdapterRegistry | getReactiveAdapterRegistry() リアクティブ型を適応させるために構成されたレジストリを返します。 |
ReturnValueHandlerConfigurer | getReturnValueHandlerConfigurer() 設定された戻り値ハンドラーを返します。 |
protected reactor.core.publisher.Mono<VoidSE> | handleMatch(T mapping, HandlerMethod handlerMethod, Message<?> message) |
reactor.core.publisher.Mono<VoidSE> | handleMessage(Message<?> message) 指定されたメッセージを処理します。 |
protected void | handleNoMatch(RouteMatcher.Route destination, Message<?> message) 一致するハンドラーが見つからないときに呼び出されます。 |
protected abstract ListSE<? extends HandlerMethodArgumentResolver> | initArgumentResolvers() 使用する引数リゾルバーのリストを返します。 |
protected abstract ListSE<? extends HandlerMethodReturnValueHandler> | initReturnValueHandlers() 使用する戻り値ハンドラーのリストを返します。 |
protected void | registerExceptionHandlerAdvice(MessagingAdviceBean bean, AbstractExceptionHandlerMethodResolver resolver) サブクラスはこのメソッドを呼び出して、MessagingAdviceBean キャッシュにデータを入力できます(例: |
void | registerHandlerMethod(ObjectSE handler, MethodSE method, T mapping) ハンドラーメソッドとその一意のマッピングを登録します。 |
void | setApplicationContext(ApplicationContext applicationContext) このオブジェクトが実行される ApplicationContext を設定します。 |
void | setArgumentResolverConfigurer(ArgumentResolverConfigurer configurer) ハンドラーメソッド引数のカスタムリゾルバーを構成します。 |
void | setBeanName(StringSE name) この Bean を作成した Bean ファクトリで Bean の名前を設定します。 |
void | setHandlerPredicate(PredicateSE<ClassSE<?>> handlerPredicate) メッセージハンドラーメソッドの存在を確認する Spring Bean を選択するための述語を設定します。 |
void | setHandlers(ListSE<ObjectSE> handlers) ハンドラーを手動で構成して、メッセージ処理メソッドの存在を確認します。これにより、 handlerPredicate による自動検出も無効になります。 |
void | setReactiveAdapterRegistry(ReactiveAdapterRegistry registry) さまざまなリアクティブ型を適応させるためにレジストリを構成します。 |
void | setReturnValueHandlerConfigurer(ReturnValueHandlerConfigurer configurer) ハンドラーメソッドのカスタム戻り値ハンドラーを構成します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEprotected final Log logger
public void setHandlerPredicate(@Nullable PredicateSE<ClassSE<?>> handlerPredicate)
これはデフォルトでは設定されていません。ただし、サブクラスはそれをいくつかのデフォルト戦略に初期化する場合があります (例: @Controller クラス)。
setHandlers(List)@Nullable public PredicateSE<ClassSE<?>> getHandlerPredicate()
configured ハンドラー述語を返します。public void setHandlers(ListSE<ObjectSE> handlers)
handlerPredicate による自動検出も無効になります。自動検出を無効にしたくない場合は、最初にこのメソッドを呼び出してから、ハンドラー述語を設定します。handlers - チェックするハンドラー public void setArgumentResolverConfigurer(ArgumentResolverConfigurer configurer)
public ArgumentResolverConfigurer getArgumentResolverConfigurer()
public void setReturnValueHandlerConfigurer(ReturnValueHandlerConfigurer configurer)
public ReturnValueHandlerConfigurer getReturnValueHandlerConfigurer()
public void setReactiveAdapterRegistry(ReactiveAdapterRegistry registry)
デフォルトでは、これはデフォルト設定の ReactiveAdapterRegistry のインスタンスです。
public ReactiveAdapterRegistry getReactiveAdapterRegistry()
public void setApplicationContext(@Nullable ApplicationContext applicationContext)
ApplicationContextAware 通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init メソッドなどの init コールバックの前に呼び出されます。ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)、ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher) および MessageSourceAware の後に呼び出されます(該当する場合)。
ApplicationContextAware の setApplicationContext applicationContext - このオブジェクトによって使用される ApplicationContext オブジェクト BeanInitializationException@Nullable public ApplicationContext getApplicationContext()
public void setBeanName(StringSE name)
BeanNameAware 通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init メソッドなどの init コールバックの前に呼び出されます。
BeanNameAware の setBeanName name - ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String) メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。public StringSE getBeanName()
protected void registerExceptionHandlerAdvice(MessagingAdviceBean bean, AbstractExceptionHandlerMethodResolver resolver)
@MessageExceptionHandler をサポートするため)。public MapSE<T,HandlerMethod> getHandlerMethods()
public MultiValueMap<StringSE,T> getDestinationLookup()
protected HandlerMethodArgumentResolverComposite getArgumentResolvers()
afterPropertiesSet() の間に初期化された引数リゾルバーを返します。主にサブクラスでの内部使用のため。public void afterPropertiesSet()
InitializingBeanBeanFactoryAware、ApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
InitializingBean の afterPropertiesSet protected abstract ListSE<? extends HandlerMethodArgumentResolver> initArgumentResolvers()
サブクラスでは、setArgumentResolverConfigurer(org.springframework.messaging.handler.invocation.reactive.ArgumentResolverConfigurer) を介して構成されたカスタム引数型も考慮する必要があります。
protected abstract ListSE<? extends HandlerMethodReturnValueHandler> initReturnValueHandlers()
サブクラスは、setReturnValueHandlerConfigurer(org.springframework.messaging.handler.invocation.reactive.ReturnValueHandlerConfigurer) を介して構成されたカスタム戻り値型も考慮する必要があります。
protected final void detectHandlerMethods(ObjectSE handler)
注意 : このメソッドは保護されており、サブクラスから呼び出すことができますが、これは registerHandlerMethod(java.lang.Object, java.lang.reflect.Method, T) に記載されているように、起動時にのみ実行する必要があります。
handler - チェックするハンドラー、Spring Bean 名のインスタンス @Nullable protected abstract T getMappingForMethod(MethodSE method, ClassSE<?> handlerType)
method - チェックする方法 handlerType - ハンドラー型、場合によってはメソッドの宣言クラスのサブ型 null public final void registerHandlerMethod(ObjectSE handler, MethodSE method, T mapping)
注意 : 5.3 では、このメソッドは(保護されているためはなく)パブリックであり、起動時と実行時の両方で使用できます。
handler - ハンドラーまたはハンドラーインスタンスの Bean 名 method - 登録する方法 mapping - ハンドラーメソッドに関連付けられたマッピング条件 IllegalStateExceptionSE - 別のメソッドが同じマッピングですでに登録されている場合 protected T extendMapping(T mapping, HandlerMethod handlerMethod)
HandlerMethod を念頭に置いてマッピングを更新できます。これは、メソッドシグネチャーを使用してマッピングを調整する場合に役立ちます。入力と出力のカーディナリティに基づいています。デフォルトでは、このメソッドは渡されたマッピングを返します。
mapping - 追加されるマッピング handlerMethod - マッピングのターゲットハンドラー protected abstract SetSE<StringSE> getDirectLookupMappings(T mapping)
注意 : これは完全にオプションです。サブクラスのマッピングメタデータは、直接検索も文字列ベースの宛先もサポートしない場合があります。
public reactor.core.publisher.Mono<VoidSE> handleMessage(Message<?> message) throws MessagingException
ReactiveMessageHandlerReactiveMessageHandler の handleMessage message - 処理するメッセージ Mono MessagingExceptionprotected reactor.core.publisher.Mono<VoidSE> handleMatch(T mapping, HandlerMethod handlerMethod, Message<?> message)
@Nullable protected abstract RouteMatcher.Route getDestination(Message<?> message)
@Nullable protected abstract T getMatchingMapping(T mapping, Message<?> message)
mapping - 一致を取得するマッピング message - 処理されているメッセージ null protected abstract ComparatorSE<T> getMappingComparator(Message<?> message)
message - 現在のメッセージ nullprotected void handleNoMatch(@Nullable RouteMatcher.Route destination, Message<?> message)
destination - 宛先 message - メッセージ protected abstract AbstractExceptionHandlerMethodResolver createExceptionMethodResolverFor(ClassSE<?> beanType)
AbstractExceptionHandlerMethodResolver の具象インスタンスを作成します。@MessageExceptionHandler の存在に基づいています。beanType - 処理中に例外が発生したクラス