クラス AbstractHandlerMethodMapping<T>

型パラメーター:
T - ハンドラーメソッドを受信リクエストに一致させるために必要な条件を含む HandlerMethod のマッピング。
実装されたすべてのインターフェース:
AwareBeanNameAwareInitializingBeanApplicationContextAwareOrderedHandlerMapping
既知の直属サブクラス
RequestMappingInfoHandlerMapping

public abstract class AbstractHandlerMethodMapping<T> extends AbstractHandlerMapping implements InitializingBean
リクエストと HandlerMethod の間のマッピングを定義する HandlerMapping 実装の抽象基本クラス。

登録された各ハンドラーメソッドについて、マッピング型 <T> の詳細を定義するサブクラスで一意のマッピングが維持されます。

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

    • AbstractHandlerMethodMapping

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

    • getHandlerMethods

      public MapSE<T,HandlerMethod> getHandlerMethods()
      すべてのマッピングと HandlerMethod を含む(読み取り専用)マップを返します。
    • registerMapping

      public void registerMapping(T mapping, ObjectSE handler, MethodSE method)
      指定されたマッピングを登録します。

      このメソッドは、初期化が完了した後、実行時に呼び出すことができます。

      パラメーター:
      mapping - ハンドラーメソッドのマッピング
      handler - ハンドラー
      method - メソッド
    • unregisterMapping

      public void unregisterMapping(T mapping)
      指定されたマッピングを登録解除します。

      このメソッドは、初期化が完了した後、実行時に呼び出すことができます。

      パラメーター:
      mapping - 登録解除するマッピング
    • afterPropertiesSet

      public void afterPropertiesSet()
      初期化時にハンドラーメソッドを検出します。
      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • initHandlerMethods

      protected void initHandlerMethods()
      ApplicationContext で Bean をスキャンし、ハンドラーメソッドを検出して登録します。
      関連事項:
    • detectHandlerMethods

      protected void detectHandlerMethods(ObjectSE handler)
      ハンドラーでハンドラーメソッドを探します。
      パラメーター:
      handler - ハンドラーまたはハンドラーインスタンスの Bean 名
    • registerHandlerMethod

      protected void registerHandlerMethod(ObjectSE handler, MethodSE method, T mapping)
      ハンドラーメソッドとその一意のマッピングを登録します。検出された各ハンドラーメソッドに対して起動時に呼び出されます。
      パラメーター:
      handler - ハンドラーまたはハンドラーインスタンスの Bean 名
      method - 登録する方法
      mapping - ハンドラーメソッドに関連付けられたマッピング条件
      例外:
      IllegalStateExceptionSE - 別のメソッドが同じマッピングですでに登録されている場合
    • createHandlerMethod

      protected HandlerMethod createHandlerMethod(ObjectSE handler, MethodSE method)
      HandlerMethod インスタンスを作成します。
      パラメーター:
      handler - Bean 名または実際のハンドラーインスタンス
      method - ターゲットメソッド
      戻り値:
      作成された HandlerMethod
    • initCorsConfiguration

      @Nullable protected CorsConfiguration initCorsConfiguration(ObjectSE handler, MethodSE method, T mapping)
      マッピングの CORS 設定を抽出して返します。
    • handlerMethodsInitialized

      protected void handlerMethodsInitialized(MapSE<T,HandlerMethod> handlerMethods)
      すべてのハンドラーメソッドが検出された後に呼び出されます。
      パラメーター:
      handlerMethods - ハンドラーメソッドとマッピングを含む読み取り専用マップ。
    • getHandlerInternal

      public reactor.core.publisher.Mono<HandlerMethod> getHandlerInternal(ServerWebExchange exchange)
      指定されたリクエストのハンドラーメソッドを検索します。
      次で指定:
      クラス AbstractHandlerMappinggetHandlerInternal 
      パラメーター:
      exchange - 現在の交換
      戻り値:
      一致するハンドラーの Mono (存在する場合)
    • lookupHandlerMethod

      @Nullable protected HandlerMethod lookupHandlerMethod(ServerWebExchange exchange) throws ExceptionSE
      現在のリクエストに最も一致するハンドラーメソッドを検索します。複数の一致が見つかった場合、最適な一致が選択されます。
      パラメーター:
      exchange - 現在の交換
      戻り値:
      最適なハンドラーメソッド、または一致しない場合は null 
      例外:
      ExceptionSE
      関連事項:
    • handleMatch

      protected void handleMatch(T mapping, HandlerMethod handlerMethod, ServerWebExchange exchange)
      一致するマッピングが見つかったときに呼び出されます。
      パラメーター:
      mapping - 一致するマッピング
      handlerMethod - マッチング方法
      exchange - 現在の交換
    • handleNoMatch

      @Nullable protected HandlerMethod handleNoMatch(SetSE<T> mappings, ServerWebExchange exchange) throws ExceptionSE
      一致するマッピングが見つからないときに呼び出されます。
      パラメーター:
      mappings - 登録済みのすべてのマッピング
      exchange - 現在の交換
      戻り値:
      代替 HandlerMethod または null
      例外:
      ExceptionSE - エラーステータスコードに変換できる詳細を提供します
    • hasCorsConfigurationSource

      protected boolean hasCorsConfigurationSource(ObjectSE handler)
      クラスからコピーされた説明: AbstractHandlerMapping
      このハンドラーに CorsConfigurationSource がある場合、true を返します。
      オーバーライド:
      クラス AbstractHandlerMappinghasCorsConfigurationSource 
    • getCorsConfiguration

      @Nullable protected CorsConfiguration getCorsConfiguration(ObjectSE handler, ServerWebExchange exchange)
      クラスからコピーされた説明: AbstractHandlerMapping
      指定されたハンドラーの CORS 構成を取得します。
      オーバーライド:
      クラス AbstractHandlerMappinggetCorsConfiguration 
      パラメーター:
      handler - チェックするハンドラー (非 null)
      exchange - 現在の交換
      戻り値:
      ハンドラーの CORS 構成、ない場合は null 
    • isHandler

      protected abstract boolean isHandler(ClassSE<?> beanType)
      指定された型がハンドラーメソッドを持つハンドラーかどうか。
      パラメーター:
      beanType - チェックされている Bean の型
      戻り値:
      これがハンドラー型の場合は "true"、そうでない場合は "false"。
    • getMappingForMethod

      @Nullable protected abstract T getMappingForMethod(MethodSE method, ClassSE<?> handlerType)
      ハンドラーメソッドのマッピングを提供します。マッピングを提供できないメソッドは、ハンドラーメソッドではありません。
      パラメーター:
      method - マッピングを提供する方法
      handlerType - ハンドラー型、場合によってはメソッドの宣言クラスのサブ型
      戻り値:
      マッピング、またはメソッドがマッピングされていない場合は null 
    • getDirectPaths

      protected SetSE<StringSE> getDirectPaths(T mapping)
      パターンではないリクエストマッピングパスを返します。
      導入:
      5.3
    • getMatchingMapping

      @Nullable protected abstract T getMatchingMapping(T mapping, ServerWebExchange exchange)
      マッピングが現在のリクエストに一致するかどうかを確認し、現在のリクエストに関連する条件を含む(潜在的に新しい)マッピングを返します。
      パラメーター:
      mapping - 一致を取得するマッピング
      exchange - 現在の交換
      戻り値:
      一致、またはマッピングが一致しない場合は null 
    • getMappingComparator

      protected abstract ComparatorSE<T> getMappingComparator(ServerWebExchange exchange)
      一致するマッピングをソートするためのコンパレータを返します。返されたコンパレータは、「より良い」一致をより高い順に並べ替えます。
      パラメーター:
      exchange - 現在の交換
      戻り値:
      コンパレータ (非 null)