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