クラス AbstractHandlerMethodMapping<T>

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

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

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

導入:
3.1
作成者:
Arjen Poutsma, Rossen Stoyanchev, Juergen Hoeller, Sam Brannen
  • コンストラクターの詳細

    • AbstractHandlerMethodMapping

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

    • setPatternParser

      public void setPatternParser(@Nullable PathPatternParser patternParser)
      クラスからコピーされた説明: AbstractHandlerMapping
      URL パスマッチングのために patterns を解析するように PathPatternParser を設定します。解析されたパターンは、AntPathMatcher による文字列パスマッチングのよりモダンで効率的な代替手段を提供します。

      注意 : このプロパティは、以下のプロパティと相互に排他的です。これらはすべて、解析されたパターンには必要なく、PathPatternParser が使用可能な場合は無視されます。

      デフォルトでは、6.0 の時点で、これはデフォルト設定の PathPatternParser インスタンスに設定されているため、解析済みパターンの使用が有効になっています。これを null に設定すると、代わりに AntPathMatcher による文字列パスマッチングに切り替わります。

      オーバーライド:
      クラス AbstractHandlerMappingsetPatternParser 
      パラメーター:
      patternParser - 使用するパーサー
    • setDetectHandlerMethodsInAncestorContexts

      public void setDetectHandlerMethodsInAncestorContexts(boolean detectHandlerMethodsInAncestorContexts)
      祖先 ApplicationContexts の Bean でハンドラーメソッドを検出するかどうか。

      デフォルトは「false」: 現在の ApplicationContext の Bean のみが考慮されます。つまり、この HandlerMapping 自体が定義されているコンテキスト(通常、現在の DispatcherServlet のコンテキスト)のみが考慮されます。

      このフラグをオンにして、祖先コンテキスト(通常は Spring ルート WebApplicationContext)のハンドラー Bean も検出します。

      関連事項:
    • setHandlerMethodMappingNamingStrategy

      public void setHandlerMethodMappingNamingStrategy(HandlerMethodMappingNamingStrategy<T> namingStrategy)
      マップされたすべてのハンドラーメソッドにデフォルト名を割り当てるために使用する命名戦略を構成します。

      デフォルトの命名戦略は、クラス名の大文字に基づいて "#" が続き、次にメソッド名が続きます。メソッド getFoo を持つ TestController というクラスの "TC#getFoo"。

    • getNamingStrategy

      @Nullable public HandlerMethodMappingNamingStrategy<T> getNamingStrategy()
      構成された命名戦略または null を返します。
    • getHandlerMethods

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

      @Nullable public ListSE<HandlerMethod> getHandlerMethodsForMappingName(StringSE mappingName)
      指定されたマッピング名のハンドラーメソッドを返します。
      パラメーター:
      mappingName - マッピング名
      戻り値:
      一致する HandlerMethod または null のリスト。返されたリストは変更されることはなく、反復しても安全です。
      関連事項:
    • 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 をスキャンし、ハンドラーメソッドを検出して登録します。
      関連事項:
    • getCandidateBeanNames

      protected StringSE[] getCandidateBeanNames()
      アプリケーションコンテキストで候補 Bean の名前を決定します。
      導入:
      5.1
      関連事項:
    • processCandidateBean

      protected void processCandidateBean(StringSE beanName)
      指定された候補 Bean の型を判別し、ハンドラー型として識別された場合は detectHandlerMethods(java.lang.Object) を呼び出します。

      この実装は、BeanFactory.getType(java.lang.String) をチェックし、Bean 名で detectHandlerMethods(java.lang.Object) を呼び出すことにより、Bean の作成を回避します。

      パラメーター:
      beanName - 候補者 Bean の名前
      導入:
      5.1
      関連事項:
    • detectHandlerMethods

      protected void detectHandlerMethods(ObjectSE handler)
      指定されたハンドラー Bean でハンドラーメソッドを探します。
      パラメーター:
      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

      @Nullable protected HandlerMethod getHandlerInternal(HttpServletRequestEE request) throws ExceptionSE
      指定されたリクエストのハンドラーメソッドを検索します。
      次で指定:
      クラス AbstractHandlerMappinggetHandlerInternal 
      パラメーター:
      request - 現在の HTTP リクエスト
      戻り値:
      対応するハンドラーインスタンス。見つからない場合は null 
      例外:
      ExceptionSE - 内部エラーがある場合
    • lookupHandlerMethod

      @Nullable protected HandlerMethod lookupHandlerMethod(StringSE lookupPath, HttpServletRequestEE request) throws ExceptionSE
      現在のリクエストに最も一致するハンドラーメソッドを検索します。複数の一致が見つかった場合、最適な一致が選択されます。
      パラメーター:
      lookupPath - 現在のサーブレットマッピング内のマッピングルックアップパス
      request - 現在のリクエスト
      戻り値:
      最適なハンドラーメソッド、または一致しない場合は null 
      例外:
      ExceptionSE
      関連事項:
    • handleMatch

      protected void handleMatch(T mapping, StringSE lookupPath, HttpServletRequestEE request)
      一致するマッピングが見つかったときに呼び出されます。
      パラメーター:
      mapping - 一致するマッピング
      lookupPath - 現在のサーブレットマッピング内のマッピングルックアップパス
      request - 現在のリクエスト
    • handleNoMatch

      @Nullable protected HandlerMethod handleNoMatch(SetSE<T> mappings, StringSE lookupPath, HttpServletRequestEE request) throws ExceptionSE
      一致するマッピングが見つからないときに呼び出されます。
      パラメーター:
      mappings - 登録済みのすべてのマッピング
      lookupPath - 現在のサーブレットマッピング内のマッピングルックアップパス
      request - 現在のリクエスト
      例外:
      ServletExceptionEE - エラーの場合
      ExceptionSE
    • hasCorsConfigurationSource

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

      @Nullable protected CorsConfiguration getCorsConfiguration(ObjectSE handler, HttpServletRequestEE request)
      クラスからコピーされた説明: AbstractHandlerMapping
      指定されたハンドラーの CORS 構成を取得します。
      オーバーライド:
      クラス AbstractHandlerMappinggetCorsConfiguration 
      パラメーター:
      handler - チェックするハンドラー(非 null)。
      request - 現在のリクエスト。
      戻り値:
      ハンドラーの 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 
    • getMappingPathPatterns

      @DeprecatedSE protected SetSE<StringSE> getMappingPathPatterns(T mapping)
      使用すべきではありません。
      5.3 以降、代わりに getDirectPaths(Object) を介して非パターンマッピングを提供する
      指定されたマッピングに含まれる URL パスを抽出して返します。
    • getDirectPaths

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

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

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