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 キャッシュにデータを入力できます(例: |
protected 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, waitSE
protected 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()
InitializingBean
BeanFactoryAware
、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
protected final void registerHandlerMethod(ObjectSE handler, MethodSE method, T mapping)
注意 : このメソッドは保護されており、サブクラスから呼び出すことができます。ただし、登録は同時使用に対して保護されておらず、起動時に行われることが想定されていることに注意してください。
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
ReactiveMessageHandler
ReactiveMessageHandler
の handleMessage
message
- 処理するメッセージ Mono
MessagingException
protected 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
- 現在のメッセージ null
protected void handleNoMatch(@Nullable RouteMatcher.Route destination, Message<?> message)
destination
- 宛先 message
- メッセージ protected abstract AbstractExceptionHandlerMethodResolver createExceptionMethodResolverFor(ClassSE<?> beanType)
AbstractExceptionHandlerMethodResolver
の具象インスタンスを作成します。@MessageExceptionHandler
の存在に基づいています。beanType
- 処理中に例外が発生したクラス