クラス AbstractUrlHandlerMapping

実装されたすべてのインターフェース:
AwareBeanNameAwareApplicationContextAwareOrderedHandlerMapping
既知の直属サブクラス
SimpleUrlHandlerMapping

public abstract class AbstractUrlHandlerMapping extends AbstractHandlerMapping
URL マッピング HandlerMapping 実装の抽象基本クラス。

直接一致をサポートします。登録された "/test" は "/test" と一致し、さまざまなパスパターンが一致します。登録された "/t*" パターンは "/test" と "/team" の両方に一致し、"/test/*" は "/test" のすべてのパスに一致し、"/test/**" は "/test" のすべてのパスに一致します。詳細については、PathPattern javadoc を参照してください。

すべてのパスパターンを検索して、現在のリクエストパスに最も一致するものを見つけます。最も具体的なパターンは、キャプチャーされた変数とワイルドカードが最も少ない最長パスパターンとして定義されます。

導入:
5.0
作成者:
Rossen Stoyanchev, Juergen Hoeller, Brian Clozel
  • コンストラクターの詳細

    • AbstractUrlHandlerMapping

      public AbstractUrlHandlerMapping()
  • メソッドの詳細

    • setLazyInitHandlers

      public void setLazyInitHandlers(boolean lazyInitHandlers)
      ハンドラーを遅延初期化するかどうかを設定します。プロトタイプは常に遅延初期化されるため、シングルトンハンドラーにのみ適用できます。積極的な初期化により、コントローラーオブジェクトを直接参照することで効率が向上するため、デフォルトは "false" です。

      コントローラーの遅延初期化を許可する場合は、コントローラーを "lazy-init" にして、このフラグを true に設定します。これらを "lazy-init" にするだけでは機能しません。この場合、ハンドラーマッピングからの参照を介して初期化されるためです。

    • getHandlerMap

      public final MapSE<PathPattern,ObjectSE> getHandlerMap()
      実際のハンドラーインスタンスまたは遅延初期化ハンドラーの Bean 名である可能性がある、登録済みのパスパターンとハンドラーの読み取り専用ビューを返します。
    • setHandlerPredicate

      public void setHandlerPredicate(BiPredicateSE<ObjectSE,ServerWebExchange> handlerPredicate)
      URL パスと一致したハンドラーの拡張一致の述語を構成します。これにより、リクエストの追加のプロパティをチェックすることで、マッピングをさらに絞り込むことができます。述語が "false" を返す場合、一致しない結果になります。これにより、別の HandlerMapping が一致するか、404(NOT_FOUND)レスポンスになります。
      パラメーター:
      handlerPredicate - 候補ハンドラーを現在の取引所と照合するための二重述語。
      導入:
      5.3.5
      関連事項:
    • getHandlerInternal

      public reactor.core.publisher.Mono<ObjectSE> getHandlerInternal(ServerWebExchange exchange)
      クラスからコピーされた説明: AbstractHandlerMapping
      特定のリクエストのハンドラーを検索し、特定のものが見つからない場合は空の Mono を返します。このメソッドは AbstractHandlerMapping.getHandler(org.springframework.web.server.ServerWebExchange) によって呼び出されます。

      CORS プリフライトリクエストでは、このメソッドはプリフライトリクエストではなく、URL パス、"Access-Control-Request-Method" ヘッダーからの HTTP メソッド、ヘッダーに基づいて予期される実際のリクエストに一致するものを返す必要があります "Access-Control-Request-Headers" ヘッダーから。

      次で指定:
      クラス AbstractHandlerMappinggetHandlerInternal 
      パラメーター:
      exchange - 現在の交換
      戻り値:
      一致するハンドラーの Mono (存在する場合)
    • lookupHandler

      @Nullable protected ObjectSE lookupHandler(PathContainer lookupPath, ServerWebExchange exchange) throws ExceptionSE
      指定された URL ルックアップパスのハンドラーインスタンスをルックアップします。

      直接一致をサポートします。登録された "/test" は "/test" と一致し、さまざまなパスパターンが一致します。登録された "/t*" は、"/test" と "/team" の両方に一致します。詳細については、PathPattern クラスを参照してください。

      パラメーター:
      lookupPath - ハンドラーがマップされている URL
      exchange - 現在の交換
      戻り値:
      関連付けられたハンドラーインスタンス、または見つからない場合は null 
      例外:
      ExceptionSE
      関連事項:
    • validateHandler

      protected void validateHandler(@Nullable ObjectSE handler, ServerWebExchange exchange)
      現在のリクエストに対して指定されたハンドラーを検証します。

      デフォルトの実装は空です。たとえば、URL マッピングで表される特定の前提条件を強制するために、サブクラスでオーバーライドできます。

      パラメーター:
      handler - 検証するハンドラーオブジェクト
      exchange - 現在の交換
    • registerHandler

      protected void registerHandler(StringSE[] urlPaths, StringSE beanName) throws BeansException, IllegalStateExceptionSE
      指定された URL パスに指定されたハンドラーを登録します。
      パラメーター:
      urlPaths - Bean がマッピングされる URL
      beanName - ハンドラー Bean の名前
      例外:
      BeansException - ハンドラーを登録できなかった場合
      IllegalStateExceptionSE - 競合するハンドラーが登録されている場合
    • registerHandler

      protected void registerHandler(StringSE urlPath, ObjectSE handler) throws BeansException, IllegalStateExceptionSE
      指定された URL パスに指定されたハンドラーを登録します。
      パラメーター:
      urlPath - Bean がマッピングされる URL
      handler - ハンドラーインスタンスまたはハンドラー Bean name String (Bean 名は、対応するハンドラー Bean に自動的に解決されます)
      例外:
      BeansException - ハンドラーを登録できなかった場合
      IllegalStateExceptionSE - 競合するハンドラーが登録されている場合