クラス AbstractUrlHandlerMapping
- 実装されたすべてのインターフェース:
Aware
、BeanNameAware
、ApplicationContextAware
、Ordered
、HandlerMapping
- 既知の直属サブクラス
SimpleUrlHandlerMapping
HandlerMapping
実装の抽象基本クラス。 直接一致をサポートします。たとえば、登録された "/test" は "/test" と一致します。また、さまざまなパスパターン一致をサポートします。たとえば、登録された "/t*" パターンは "/test" と "/team" の両方と一致し、"/test/*" は "/test" のすべてのパスと一致し、"/test/**" は "/test" のすべてのパスと一致します。詳細については、PathPattern
javadoc を参照してください。
すべてのパスパターンを検索して、現在のリクエストパスに最も一致するものを見つけます。最も具体的なパターンは、キャプチャーされた変数とワイルドカードが最も少ない最長パスパターンとして定義されます。
- 導入:
- 5.0
- 作成者:
- Rossen Stoyanchev, Juergen Hoeller, Brian Clozel
フィールドサマリー
クラス org.springframework.web.reactive.handler.AbstractHandlerMapping から継承されたフィールド
mappingsLogger
クラス org.springframework.context.support.ApplicationObjectSupport から継承されたフィールド
logger
インターフェース org.springframework.web.reactive.HandlerMapping から継承されたフィールド
BEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE
インターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
コンストラクターのサマリー
方法の概要
修飾子と型メソッド説明reactor.core.publisher.Mono<ObjectSE>
getHandlerInternal
(ServerWebExchange exchange) 特定のリクエストのハンドラーを検索し、特定のものが見つからない場合は空のMono
を返します。final MapSE<PathPattern,
ObjectSE> 実際のハンドラーインスタンスまたは遅延初期化ハンドラーの Bean 名である可能性がある、登録済みのパスパターンとハンドラーの読み取り専用ビューを返します。protected ObjectSE
lookupHandler
(PathContainer lookupPath, ServerWebExchange exchange) 指定された URL ルックアップパスのハンドラーインスタンスをルックアップします。protected void
registerHandler
(StringSE[] urlPaths, StringSE beanName) 指定された URL パスに指定されたハンドラーを登録します。protected void
registerHandler
(StringSE urlPath, ObjectSE handler) 指定された URL パスに指定されたハンドラーを登録します。void
setHandlerPredicate
(BiPredicateSE<ObjectSE, ServerWebExchange> handlerPredicate) URL パスと一致したハンドラーの拡張一致の述語を構成します。void
setLazyInitHandlers
(boolean lazyInitHandlers) ハンドラーを遅延初期化するかどうかを設定します。protected void
validateHandler
(ObjectSE handler, ServerWebExchange exchange) 現在のリクエストに対して指定されたハンドラーを検証します。クラス org.springframework.web.reactive.handler.AbstractHandlerMapping から継承されたメソッド
formatMappingName, getCorsConfiguration, getCorsProcessor, getHandler, getOrder, getPathPatternParser, hasCorsConfigurationSource, setBeanName, setCorsConfigurations, setCorsConfigurationSource, setCorsProcessor, setOrder, setUseCaseSensitiveMatch, setUseTrailingSlashMatch
クラス org.springframework.context.support.ApplicationObjectSupport から継承されたメソッド
getApplicationContext, getMessageSourceAccessor, initApplicationContext, initApplicationContext, isContextRequired, obtainApplicationContext, requiredContextClass, setApplicationContext
コンストラクターの詳細
AbstractUrlHandlerMapping
public AbstractUrlHandlerMapping()
メソッドの詳細
setLazyInitHandlers
public void setLazyInitHandlers(boolean lazyInitHandlers) ハンドラーを遅延初期化するかどうかを設定します。プロトタイプは常に遅延初期化されるため、シングルトンハンドラーにのみ適用できます。積極的な初期化により、コントローラーオブジェクトを直接参照することで効率が向上するため、デフォルトは "false" です。コントローラーの遅延初期化を許可する場合は、コントローラーを "lazy-init" にして、このフラグを true に設定します。これらを "lazy-init" にするだけでは機能しません。この場合、ハンドラーマッピングからの参照を介して初期化されるためです。
getHandlerMap
実際のハンドラーインスタンスまたは遅延初期化ハンドラーの Bean 名である可能性がある、登録済みのパスパターンとハンドラーの読み取り専用ビューを返します。setHandlerPredicate
URL パスと一致したハンドラーの拡張一致の述語を構成します。これにより、リクエストの追加のプロパティをチェックすることで、マッピングをさらに絞り込むことができます。述語が "false" を返す場合、一致しない結果になります。これにより、別のHandlerMapping
が一致するか、404(NOT_FOUND)レスポンスになります。- パラメーター:
handlerPredicate
- 候補ハンドラーを現在の取引所と照合するための二重述語。- 導入:
- 5.3.5
- 関連事項:
getHandlerInternal
クラスからコピーされた説明:AbstractHandlerMapping
特定のリクエストのハンドラーを検索し、特定のものが見つからない場合は空のMono
を返します。このメソッドはAbstractHandlerMapping.getHandler(org.springframework.web.server.ServerWebExchange)
によって呼び出されます。CORS プリフライトリクエストでは、このメソッドはプリフライトリクエストではなく、URL パス、"Access-Control-Request-Method" ヘッダーからの HTTP メソッド、ヘッダーに基づいて予期される実際のリクエストに一致するものを返す必要があります "Access-Control-Request-Headers" ヘッダーから。
- 次で指定:
- クラス
AbstractHandlerMapping
のgetHandlerInternal
- パラメーター:
exchange
- 現在の交換- 戻り値:
- 一致するハンドラーの
Mono
(存在する場合)
lookupHandler
@Nullable protected ObjectSE lookupHandler(PathContainer lookupPath, ServerWebExchange exchange) throws ExceptionSE 指定された URL ルックアップパスのハンドラーインスタンスをルックアップします。直接一致をサポートします。たとえば、登録された "/test" は "/test" と一致します。また、さまざまなパスパターン一致をサポートします。たとえば、登録された "/t*" は "/test" と "/team" の両方と一致します。詳細については、PathPattern クラスを参照してください。
- パラメーター:
lookupPath
- ハンドラーがマップされている URLexchange
- 現在の交換- 戻り値:
- 関連付けられたハンドラーインスタンス、または見つからない場合は
null
- 例外:
ExceptionSE
- 関連事項:
validateHandler
現在のリクエストに対して指定されたハンドラーを検証します。デフォルトの実装は空です。たとえば、URL マッピングで表される特定の前提条件を強制するために、サブクラスでオーバーライドできます。
- パラメーター:
handler
- 検証するハンドラーオブジェクトexchange
- 現在の交換
registerHandler
protected void registerHandler(StringSE[] urlPaths, StringSE beanName) throws BeansException, IllegalStateExceptionSE 指定された URL パスに指定されたハンドラーを登録します。- パラメーター:
urlPaths
- Bean がマッピングされる URLbeanName
- ハンドラー Bean の名前- 例外:
BeansException
- ハンドラーを登録できなかった場合IllegalStateExceptionSE
- 競合するハンドラーが登録されている場合
registerHandler
protected void registerHandler(StringSE urlPath, ObjectSE handler) throws BeansException, IllegalStateExceptionSE 指定された URL パスに指定されたハンドラーを登録します。- パラメーター:
urlPath
- Bean がマッピングされる URLhandler
- ハンドラーインスタンスまたはハンドラー Bean name String (Bean 名は、対応するハンドラー Bean に自動的に解決されます)- 例外:
BeansException
- ハンドラーを登録できなかった場合IllegalStateExceptionSE
- 競合するハンドラーが登録されている場合