クラス 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
フィールド概要
クラス AbstractHandlerMapping から継承されたフィールド
mappingsLoggerクラス ApplicationObjectSupport から継承されたフィールド
loggerインターフェース HandlerMapping から継承されたフィールド
API_VERSION_ATTRIBUTE, BEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTEインターフェース Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCEコンストラクター概要
コンストラクター方法の概要
修飾子と型メソッド説明getHandlerInternal(ServerWebExchange exchange) 特定のリクエストのハンドラーを検索し、特定のものが見つからない場合は空のMonoを返します。final MapSE<PathPattern, ObjectSE> 実際のハンドラーインスタンスまたは遅延初期化ハンドラーの Bean 名である可能性がある、登録済みのパスパターンとハンドラーの読み取り専用ビューを返します。lookupHandler(PathContainer lookupPath, ServerWebExchange exchange) 指定された URL ルックアップパスのハンドラーインスタンスをルックアップします。protected voidregisterHandler(StringSE[] urlPaths, StringSE beanName) 指定された URL パスに指定されたハンドラーを登録します。protected voidregisterHandler(StringSE urlPath, ObjectSE handler) 指定された URL パスに指定されたハンドラーを登録します。voidsetHandlerPredicate(BiPredicateSE<ObjectSE, ServerWebExchange> handlerPredicate) URL パスと一致したハンドラーの拡張一致の述語を構成します。voidsetLazyInitHandlers(boolean lazyInitHandlers) ハンドラーを遅延初期化するかどうかを設定します。protected voidvalidateHandler(@Nullable ObjectSE handler, ServerWebExchange exchange) 現在のリクエストに対して指定されたハンドラーを検証します。クラス AbstractHandlerMapping から継承されたメソッド
formatMappingName, getApiVersionStrategy, getCorsConfiguration, getCorsProcessor, getHandler, getOrder, getPathPatternParser, hasCorsConfigurationSource, setApiVersionStrategy, setBeanName, setCorsConfigurations, setCorsConfigurationSource, setCorsProcessor, setOrder, setUseCaseSensitiveMatch
コンストラクターの詳細
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(ServerWebExchange)によって呼び出されます。CORS プリフライトリクエストでは、このメソッドはプリフライトリクエストではなく、URL パス、"Access-Control-Request-Method" ヘッダーからの HTTP メソッド、ヘッダーに基づいて予期される実際のリクエストに一致するものを返す必要があります "Access-Control-Request-Headers" ヘッダーから。
- 次で指定:
- クラス
AbstractHandlerMappingのgetHandlerInternal - パラメーター:
exchange- 現在の交換- 戻り値:
- 一致するハンドラーの
Mono(存在する場合)
lookupHandler
protected @Nullable 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- 競合するハンドラーが登録されている場合