クラス AbstractHandlerMapping
- 実装されているすべてのインターフェース:
- Aware、- BeanNameAware、- ApplicationContextAware、- Ordered、- ServletContextAware、- HandlerMapping
HandlerMapping 実装の抽象基本クラス。パスパターンによってマップされたハンドラーインターセプターを含む、順序付け、デフォルトハンドラー、ハンドラーインターセプターをサポートします。 メモ: この基本クラスは、HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE の公開をサポートしていません。この属性のサポートは、通常リクエスト URL マッピングに基づいた具象サブクラスまでです。
- 導入:
- 07.04.2003
- 作成者:
- Juergen Hoeller, Rossen Stoyanchev, Sam Brannen
- 関連事項:
- フィールドのサマリーフィールド- クラス org.springframework.context.support.ApplicationObjectSupport から継承されたフィールド- logger- インターフェース org.springframework.web.servlet.HandlerMapping から継承されたフィールド- BEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, INTROSPECT_TYPE_LEVEL_MAPPING, LOOKUP_PATH, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE- インターフェース org.springframework.core.Ordered から継承されたフィールド- HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
- コンストラクターの概要コンストラクター
- メソッドのサマリー修飾子と型メソッド説明- protected HandlerInterceptor- adaptInterceptor- (ObjectSE interceptor) 指定されたインターセプターオブジェクトを- HandlerInterceptorに適合させます。- protected void- detectMappedInterceptors- (ListSE<HandlerInterceptor> mappedInterceptors) 型- MappedInterceptorの Bean を検出し、マッピングされたインターセプターのリストに追加します。- protected void- extendInterceptors- (ListSE<ObjectSE> interceptors) 構成されたインターセプター(- setInterceptors(java.lang.Object...)を参照)を指定すると、サブクラスがオーバーライドして追加のインターセプターを登録できる拡張フック。- protected StringSE- final HandlerInterceptor[]- HandlerInterceptorに適合したすべての構成済みインターセプターを返します。- protected CorsConfiguration- getCorsConfiguration- (ObjectSE handler, HttpServletRequestEE request) 指定されたハンドラーの CORS 構成を取得します。- configured- CorsConfigurationSourceがある場合は、それを返します。- protected HandlerExecutionChain- getCorsHandlerExecutionChain- (HttpServletRequestEE request, HandlerExecutionChain chain, CorsConfiguration config) CORS リクエスト用に- HandlerExecutionChainを更新し、チェーンの先頭にインターセプターを挿入して CORS チェックを実行し、プリフライトリクエストに対して no-op ハンドラーも使用します。設定された- CorsProcessorを返します。このハンドラーマッピングのデフォルトハンドラーを返します。ない場合は- nullを返します。- final HandlerExecutionChain- getHandler- (HttpServletRequestEE request) 特定のリクエストのハンドラーを検索し、特定のハンドラーが見つからない場合はデフォルトのハンドラーにフォールバックします。- protected HandlerExecutionChain- getHandlerExecutionChain- (ObjectSE handler, HttpServletRequestEE request) 該当するインターセプターを含む、指定されたハンドラー用の- HandlerExecutionChainを作成します。- protected abstract ObjectSE- getHandlerInternal- (HttpServletRequestEE request) 特定のリクエストのハンドラーを検索し、特定のリクエストが見つからない場合は- nullを返します。- protected final MappedInterceptor[]構成されたすべての- MappedInterceptorを配列として返します。- int- getOrder()このオブジェクトの順序値を取得します。- configured- PathMatcherを返します。- configured- PathPatternParserまたは- nullを返します。それ以外の場合は、代わりに- AntPathMatcherとの文字列パターンマッチングが有効になっていることを示します。- configured- UrlPathHelperを返します。- protected boolean- hasCorsConfigurationSource- (ObjectSE handler) このハンドラーに- CorsConfigurationSourceがある場合、- trueを返します。- protected voidインターセプターを初期化します。- protected void- WebRequestInterceptorを- HandlerInterceptorに適応させる指定されたインターセプターを初期化します。- protected StringSE- initLookupPath- (HttpServletRequestEE request) リクエストのマッピングに使用するパスを初期化します。- void- setAlwaysUseFullPath- (boolean alwaysUseFullPath) 使用すべきではありません。- void- setBeanName- (StringSE name) この Bean を作成した Bean ファクトリで Bean の名前を設定します。- void- setCorsConfigurations- (MapSE<StringSE, - CorsConfiguration> corsConfigurations) 「グローバル」CORS 構成マッピングを設定します。- void「グローバル」CORS 設定に- CorsConfigurationSourceを設定します。- void- setCorsProcessor- (CorsProcessor corsProcessor) 一致する- CorsConfigurationをリクエストに適用するために使用するカスタム- CorsProcessorを構成します。- void- setDefaultHandler- (ObjectSE defaultHandler) このハンドラーマッピングのデフォルトハンドラーを設定します。- void- setInterceptors- (ObjectSE... interceptors) このハンドラーマッピングによってマップされたすべてのハンドラーに適用するインターセプターを設定します。- void- setOrder- (int order) この HandlerMapping Bean の順序値を指定します。- void- setPathMatcher- (PathMatcher pathMatcher) 使用する PathMatcher を構成します。- void- setPatternParser- (PathPatternParser patternParser) URL パスマッチングのために- patternsを解析するように- PathPatternParserを設定します。- void- setRemoveSemicolonContent- (boolean removeSemicolonContent) 使用すべきではありません。6.0 現在、- setUrlPathHelper(UrlPathHelper)の使用を推奨- void- setUrlDecode- (boolean urlDecode) 使用すべきではありません。6.0 現在、- setUrlPathHelper(UrlPathHelper)の使用を推奨- void- setUrlPathHelper- (UrlPathHelper urlPathHelper) ルックアップパスの解決に使用するように UrlPathHelper を構成します。- boolean- クラス org.springframework.web.context.support.WebApplicationObjectSupport から継承されたメソッド- getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext- クラス org.springframework.context.support.ApplicationObjectSupport から継承されたメソッド- getApplicationContext, getMessageSourceAccessor, obtainApplicationContext, requiredContextClass, setApplicationContext
- フィールドの詳細- mappingsLoggerリクエストマッピング専用の「非表示」ロガー。
 
- コンストラクターの詳細- AbstractHandlerMappingpublic AbstractHandlerMapping()
 
- メソッドの詳細- setDefaultHandlerこのハンドラーマッピングのデフォルトハンドラーを設定します。特定のマッピングが見つからなかった場合、このハンドラーが返されます。- デフォルトは - nullで、デフォルトのハンドラーがないことを示します。
- getDefaultHandlerこのハンドラーマッピングのデフォルトハンドラーを返します。ない場合は- nullを返します。
- setPatternParserURL パスマッチングのために- patternsを解析するように- PathPatternParserを設定します。解析されたパターンは、- AntPathMatcherによる文字列パスマッチングのよりモダンで効率的な代替手段を提供します。- 注意 : このプロパティは、以下のプロパティと相互に排他的です。これらはすべて、解析されたパターンには必要なく、 - PathPatternParserが使用可能な場合は無視されます。- setAlwaysUseFullPath(boolean)-- 解析されたパターンは常に完全なパスを使用し、サーブレットがパスプレフィックスによってマップされている場合にのみ servletPath を考慮します。
- setRemoveSemicolonContent(boolean)-- 解析されたパターンは、パスマッチングの目的でセミコロンの内容を常に無視しますが、パスパラメーターは- @MatrixVariableを介してコントローラーで使用できます。
- setUrlDecode(boolean)-- 解析されたパターンは、一度に 1 つのデコードされたパスセグメントに一致するため、完全なパスをデコードする必要はありません。
- setUrlPathHelper(org.springframework.web.util.UrlPathHelper)-- 解析されたパターンの場合、リクエストパスは- DispatcherServletまたは- ServletRequestPathUtilsを使用して- ServletRequestPathFilterで一度解析され、リクエスト属性にキャッシュされます。
- setPathMatcher(org.springframework.util.PathMatcher)-- 解析されたパターンは、パスマッチングのロジックをカプセル化し、- PathMatcherを必要とします。
 - デフォルトでは、6.0 の時点で、これはデフォルト設定の - PathPatternParserインスタンスに設定されているため、解析済みパターンの使用が有効になっています。これを- nullに設定すると、代わりに- AntPathMatcherによる文字列パスマッチングに切り替わります。- パラメーター:
- patternParser- 使用するパーサー
- 導入:
- 5.3
 
- getPatternParser- configured- PathPatternParserまたは- nullを返します。それ以外の場合は、代わりに- AntPathMatcherとの文字列パターンマッチングが有効になっていることを示します。- 導入:
- 5.3
 
- setAlwaysUseFullPath使用すべきではありません。6.0 現在、- setUrlPathHelper(UrlPathHelper)の使用を推奨構成された- UrlPathHelperの同じプロパティへのショートカット。- 注意 : このプロパティは相互に排他的であり、 - setPatternParser(PathPatternParser)が設定されている場合は無視されます。
- setUrlDecode使用すべきではありません。6.0 現在、- setUrlPathHelper(UrlPathHelper)の使用を推奨基になる- UrlPathHelperの同じプロパティへのショートカット。- 注意 : このプロパティは相互に排他的であり、 - setPatternParser(PathPatternParser)が設定されている場合は無視されます。
- setRemoveSemicolonContent使用すべきではありません。6.0 現在、- setUrlPathHelper(UrlPathHelper)の使用を推奨基になる- UrlPathHelperの同じプロパティへのショートカット。- 注意 : このプロパティは相互に排他的であり、 - setPatternParser(PathPatternParser)が設定されている場合は無視されます。
- setUrlPathHelperルックアップパスの解決に使用するように UrlPathHelper を構成します。- 注意 : このプロパティは相互に排他的であり、 - setPatternParser(PathPatternParser)が設定されている場合は無視されます。
- getUrlPathHelper- configured- UrlPathHelperを返します。
- setPathMatcher使用する PathMatcher を構成します。- 注意 : このプロパティは相互に排他的であり、 - setPatternParser(PathPatternParser)が設定されている場合は無視されます。- デフォルトでは、これは - AntPathMatcherです。- 関連事項:
 
- getPathMatcher- configured- PathMatcherを返します。
- setInterceptorsこのハンドラーマッピングによってマップされたすべてのハンドラーに適用するインターセプターを設定します。- サポートされているインターセプター型は、 - HandlerInterceptor、- WebRequestInterceptor、- MappedInterceptorです。マップされたインターセプターは、パスパターンに一致するリクエスト URL にのみ適用されます。マップされたインターセプター Bean も、初期化中に型ごとに検出されます。- パラメーター:
- interceptors- ハンドラーインターセプターの配列
- 関連事項:
 
- getAdaptedInterceptors- HandlerInterceptorに適合したすべての構成済みインターセプターを返します。- 戻り値:
-  構成されたインターセプターの配列、または構成されていない場合は null。このメソッドは、あまりにも早く呼び出された場合、またはより具体的にはApplicationContextAware.setApplicationContext(org.springframework.context.ApplicationContext)の前に呼び出された場合にもnullを返します。
 
- getMappedInterceptors構成されたすべての- MappedInterceptorを配列として返します。- 戻り値:
- MappedInterceptorの配列。ない場合は- null
 
- setCorsConfigurations「グローバル」CORS 構成マッピングを設定します。最初に一致する URL パターンは、使用する- CorsConfigurationを決定し、次に、選択されたハンドラーの- CorsConfigurationでさらに- combinedになります。- これは - setCorsConfigurationSource(CorsConfigurationSource)と相互に排他的です。- 導入:
- 4.2
- 関連事項:
 
- setCorsConfigurationSource「グローバル」CORS 設定に- CorsConfigurationSourceを設定します。ソースによって決定された- CorsConfigurationは、選択されたハンドラーの- CorsConfigurationを持つ- combinedです。- これは - setCorsConfigurations(Map)と相互に排他的です。- 導入:
- 5.1
- 関連事項:
 
- getCorsConfigurationSource- configured- CorsConfigurationSourceがある場合は、それを返します。- 導入:
- 5.3
 
- setCorsProcessor一致する- CorsConfigurationをリクエストに適用するために使用するカスタム- CorsProcessorを構成します。- デフォルトでは、 - DefaultCorsProcessorが使用されます。- 導入:
- 4.2
 
- getCorsProcessor設定された- CorsProcessorを返します。
- setOrderpublic void setOrder- (int order) この HandlerMapping Bean の順序値を指定します。- デフォルト値は - Ordered.LOWEST_PRECEDENCEで、順序なしを意味します。- 関連事項:
 
- getOrderpublic int getOrder()インターフェースからコピーされた説明:- Orderedこのオブジェクトの順序値を取得します。- 値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット - load-on-startupの値に多少似ています)。- 同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。 
- setBeanNameインターフェースからコピーされた説明:- BeanNameAwareこの Bean を作成した Bean ファクトリで Bean の名前を設定します。- 通常の Bean プロパティの設定後、ただし - InitializingBean.afterPropertiesSet()またはカスタム init メソッドなどの init コールバックの前に呼び出されます。- 次で指定:
-  インターフェース BeanNameAwareのsetBeanName
- パラメーター:
- name- ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、- BeanFactoryUtils.originalBeanName(String)メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。
 
- formatMappingName
- initApplicationContextインターセプターを初期化します。- オーバーライド:
-  クラス ApplicationObjectSupportのinitApplicationContext
- 例外:
- ApplicationContextException- 初期化エラーの場合
- BeansException- ApplicationContext メソッドによってスローされた場合
- 関連事項:
 
- extendInterceptors構成されたインターセプター(- setInterceptors(java.lang.Object...)を参照)を指定すると、サブクラスがオーバーライドして追加のインターセプターを登録できる拡張フック。- initInterceptors()が指定されたインターセプターを- HandlerInterceptorインスタンスに適応させる前に呼び出されます。- デフォルトの実装は空です。 - パラメーター:
- interceptors- 構成されたインターセプターリスト(非- null)。既存のインターセプターの前後にインターセプターを追加できます
 
- detectMappedInterceptors型- MappedInterceptorの Bean を検出し、マッピングされたインターセプターのリストに追加します。- これは、 - setInterceptors(java.lang.Object...)を介して提供されたすべての- MappedInterceptorに加えて呼び出され、デフォルトで、現在のコンテキストとその祖先から型- MappedInterceptorのすべての Bean を追加します。サブクラスはこのポリシーをオーバーライドおよび調整できます。- パラメーター:
- mappedInterceptors- 追加する空のリスト
 
- initInterceptorsprotected void initInterceptors()- WebRequestInterceptorを- HandlerInterceptorに適応させる指定されたインターセプターを初期化します。
- adaptInterceptor指定されたインターセプターオブジェクトを- HandlerInterceptorに適合させます。- デフォルトでは、サポートされるインターセプター型は - HandlerInterceptorおよび- WebRequestInterceptorです。指定された各- WebRequestInterceptorは- WebRequestHandlerInterceptorAdapterでラップされます。- パラメーター:
- interceptor- インターセプター
- 戻り値:
- インターセプターダウンキャストまたは HandlerInterceptor に適合
- 関連事項:
 
- usesPathPatternspublic boolean usesPathPatterns()- 次で指定:
-  インターフェース HandlerMappingのusesPathPatterns
 
- getHandler@Nullable public final HandlerExecutionChain getHandler- (HttpServletRequestEE request) throws ExceptionSE 特定のリクエストのハンドラーを検索し、特定のハンドラーが見つからない場合はデフォルトのハンドラーにフォールバックします。- 次で指定:
-  インターフェース HandlerMappingのgetHandler
- パラメーター:
- request- 現在の HTTP リクエスト
- 戻り値:
- 対応するハンドラーインスタンス、またはデフォルトハンドラー
- 例外:
- ExceptionSE- 内部エラーがある場合
- 関連事項:
 
- getHandlerInternal@Nullable protected abstract ObjectSE getHandlerInternal- (HttpServletRequestEE request) throws ExceptionSE 特定のリクエストのハンドラーを検索し、特定のリクエストが見つからない場合は- nullを返します。このメソッドは- getHandler(jakarta.servlet.http.HttpServletRequest)によって呼び出されます。- nullの戻り値は、デフォルトのハンドラー(設定されている場合)につながります。- CORS プリフライトリクエストでは、このメソッドはプリフライトリクエストではなく、URL パス、"Access-Control-Request-Method" ヘッダーからの HTTP メソッド、ヘッダーに基づいて予想される実際のリクエストに対して一致を返す必要があります "Access-Control-Request-Headers" ヘッダーから、 - getCorsConfiguration(Object, HttpServletRequest)を介して CORS 設定を取得できるようにします。- メモ: このメソッドは、ハンドラーオブジェクトと動的に決定されたインターセプターを組み合わせて、事前に構築された - HandlerExecutionChainを返すこともあります。静的に指定されたインターセプターは、そのような既存のチェーンにマージされます。- パラメーター:
- request- 現在の HTTP リクエスト
- 戻り値:
-  対応するハンドラーインスタンス。見つからない場合は null
- 例外:
- ExceptionSE- 内部エラーがある場合
 
- initLookupPathリクエストのマッピングに使用するパスを初期化します。- 解析されたパターンが - enabledの場合、解析された- RequestPathは、- DispatcherServletまたは- ServletRequestPathFilterによって外部的に- parsedであると予想されます。- それ以外の場合、 - PathMatcherを介した文字列パターンマッチングの場合、このメソッドによるパスは- resolvedです。- 導入:
- 5.3
 
- getHandlerExecutionChainprotected HandlerExecutionChain getHandlerExecutionChain- (ObjectSE handler, HttpServletRequestEE request) 該当するインターセプターを含む、指定されたハンドラー用の- HandlerExecutionChainを作成します。- デフォルトの実装では、指定されたハンドラー、ハンドラーマッピングの共通インターセプター、現在のリクエスト URL に一致する - MappedInterceptorsを使用して、標準の- HandlerExecutionChainを構築します。インターセプターは、登録された順に追加されます。サブクラスは、インターセプターのリストを継承 / 再配置するためにこれをオーバーライドできます。- 注意 : 渡されたハンドラーオブジェクトは、生のハンドラーまたは事前に作成された - HandlerExecutionChainの場合があります。このメソッドは、新しい- HandlerExecutionChainの構築または既存のチェーンの拡張のいずれかで、これら 2 つのケースを明示的に処理する必要があります。- カスタムサブクラスにインターセプターを単純に追加するには、 - super.getHandlerExecutionChain(handler, request)を呼び出し、返されたチェーンオブジェクトで- HandlerExecutionChain.addInterceptor(org.springframework.web.servlet.HandlerInterceptor)を呼び出すことを検討してください。- パラメーター:
- handler- 解決されたハンドラーインスタンス (非- null)
- request- 現在の HTTP リクエスト
- 戻り値:
- HandlerExecutionChain (非 null)
- 関連事項:
 
- hasCorsConfigurationSourceこのハンドラーに- CorsConfigurationSourceがある場合、- trueを返します。- 導入:
- 5.2
 
- getCorsConfiguration@Nullable protected CorsConfiguration getCorsConfiguration- (ObjectSE handler, HttpServletRequestEE request) 指定されたハンドラーの CORS 構成を取得します。- パラメーター:
- handler- チェックするハンドラー(非- null)。
- request- 現在のリクエスト。
- 戻り値:
-  ハンドラーの CORS 構成、ない場合は null
- 導入:
- 4.2
 
- getCorsHandlerExecutionChainprotected HandlerExecutionChain getCorsHandlerExecutionChain- (HttpServletRequestEE request, HandlerExecutionChain chain, @Nullable CorsConfiguration config) CORS リクエスト用に- HandlerExecutionChainを更新し、チェーンの先頭にインターセプターを挿入して CORS チェックを実行し、プリフライトリクエストに対して no-op ハンドラーも使用します。- パラメーター:
- request- 現在のリクエスト
- chain- 更新するチェーン
- config- ハンドラーに適用される CORS 構成
- 導入:
- 4.2
 
 
setUrlPathHelper(UrlPathHelper)の使用を推奨