クラス RequestMappingHandlerMapping
- 実装されたすべてのインターフェース:
Aware
、BeanNameAware
、InitializingBean
、ApplicationContextAware
、EmbeddedValueResolverAware
、Ordered
、ServletContextAware
、MatchableHandlerMapping
、HandlerMapping
@Controller
クラスの型 レベルおよびメソッドレベルの @RequestMapping
および @HttpExchange
アノテーションから RequestMappingInfo
インスタンスを作成します。非推奨のメモ:
5.2.4 では、リクエストマッピングおよびコンテンツネゴシエーションにパス拡張を使用しないようにするために、useSuffixPatternMatch
および useRegisteredSuffixPatternMatch
が非推奨になりました(ContentNegotiationManagerFactoryBean
でも同様の非推奨)。詳細については、#24179 号を参照してください。- 導入:
- 3.1
- 作成者:
- Arjen Poutsma, Rossen Stoyanchev, Sam Brannen, Olga Maciaszek-Sharma
フィールドのサマリー
クラス org.springframework.web.servlet.handler.AbstractHandlerMapping から継承されたフィールド
mappingsLogger
クラス 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
コンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明void
初期化時にハンドラーメソッドを検出します。protected RequestMappingInfo
createRequestMappingInfo
(RequestMapping requestMapping, RequestCondition<?> customCondition) 提供された@RequestMapping
アノテーション、メタアノテーション、またはアノテーション階層内でアノテーション属性をマージした合成結果からRequestMappingInfo
を作成します。protected RequestMappingInfo
createRequestMappingInfo
(HttpExchange httpExchange, RequestCondition<?> customCondition) 提供された@HttpExchange
アノテーション、メタアノテーション、またはアノテーション階層内でアノテーション属性をマージした合成結果からRequestMappingInfo
を作成します。このHandlerMapping
の内部構成を反映し、RequestMappingInfo.Builder.options(RequestMappingInfo.BuilderConfiguration)
の設定に使用できるRequestMappingInfo.BuilderConfiguration
を取得します。設定されたContentNegotiationManager
を返します。protected RequestCondition<?>
getCustomMethodCondition
(MethodSE method) カスタムのメソッドレベルのリクエスト条件を指定します。protected RequestCondition<?>
getCustomTypeCondition
(ClassSE<?> handlerType) カスタム型レベルのリクエスト条件を指定します。使用すべきではありません。5.2.4 現在。protected RequestMappingInfo
getMappingForMethod
(MethodSE method, ClassSE<?> handlerType) MapSE<StringSE,
PredicateSE<ClassSE<?>>> 構成されたパスは、読み取り専用の、おそらく空のマップとしてプレフィックスします。protected CorsConfiguration
initCorsConfiguration
(ObjectSE handler, MethodSE method, RequestMappingInfo mappingInfo) マッピングの CORS 設定を抽出して返します。protected boolean
指定された型がハンドラーメソッドを持つハンドラーかどうか。match
(HttpServletRequestEE request, StringSE pattern) リクエストが指定されたパターンに一致するかどうかを判別します。protected void
registerHandlerMethod
(ObjectSE handler, MethodSE method, RequestMappingInfo mapping) ハンドラーメソッドとその一意のマッピングを登録します。void
registerMapping
(RequestMappingInfo mapping, ObjectSE handler, MethodSE method) 指定されたマッピングを登録します。protected StringSE[]
resolveEmbeddedValuesInPatterns
(StringSE[] patterns) 指定されたパターンの配列のプレースホルダー値を解決します。void
setContentNegotiationManager
(ContentNegotiationManager contentNegotiationManager) リクエストされたメディア型を判別するために使用するContentNegotiationManager
を設定します。void
setEmbeddedValueResolver
(StringValueResolver resolver) StringValueResolver を設定して、埋め込まれた定義値の解決に使用します。void
setPathPrefixes
(MapSE<StringSE, PredicateSE<ClassSE<?>>> prefixes) コントローラーメソッドに適用するパスプレフィックスを構成します。void
setPatternParser
(PathPatternParser patternParser) URL パスマッチングのためにpatterns
を解析するようにPathPatternParser
を設定します。void
setUseRegisteredSuffixPatternMatch
(boolean useRegisteredSuffixPatternMatch) 使用すべきではありません。5.2.4 現在。void
setUseSuffixPatternMatch
(boolean useSuffixPatternMatch) 使用すべきではありません。5.2.4 現在。void
setUseTrailingSlashMatch
(boolean useTrailingSlashMatch) 使用すべきではありません。boolean
使用すべきではありません。5.2.4 現在。boolean
使用すべきではありません。5.2.4 現在。boolean
末尾のスラッシュの有無に関係なく、URL に一致するかどうか。クラス org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping から継承されたメソッド
getDirectPaths, getHandlerInternal, getMappingComparator, getMappingPathPatterns, getMatchingMapping, handleMatch, handleNoMatch
クラス org.springframework.web.servlet.handler.AbstractHandlerMethodMapping から継承されたメソッド
createHandlerMethod, detectHandlerMethods, getCandidateBeanNames, getCorsConfiguration, getHandlerMethods, getHandlerMethodsForMappingName, getNamingStrategy, handlerMethodsInitialized, hasCorsConfigurationSource, initHandlerMethods, lookupHandlerMethod, processCandidateBean, setDetectHandlerMethodsInAncestorContexts, setHandlerMethodMappingNamingStrategy, unregisterMapping
クラス org.springframework.web.servlet.handler.AbstractHandlerMapping から継承されたメソッド
adaptInterceptor, detectMappedInterceptors, extendInterceptors, formatMappingName, getAdaptedInterceptors, getCorsConfigurationSource, getCorsHandlerExecutionChain, getCorsProcessor, getDefaultHandler, getHandler, getHandlerExecutionChain, getMappedInterceptors, getOrder, getPathMatcher, getPatternParser, getUrlPathHelper, initApplicationContext, initInterceptors, initLookupPath, setAlwaysUseFullPath, setBeanName, setCorsConfigurations, setCorsConfigurationSource, setCorsProcessor, setDefaultHandler, setInterceptors, setOrder, setPathMatcher, setRemoveSemicolonContent, setUrlDecode, setUrlPathHelper, usesPathPatterns
クラス org.springframework.web.context.support.WebApplicationObjectSupport から継承されたメソッド
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
クラス org.springframework.context.support.ApplicationObjectSupport から継承されたメソッド
getApplicationContext, getMessageSourceAccessor, obtainApplicationContext, requiredContextClass, setApplicationContext
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.web.servlet.HandlerMapping から継承されたメソッド
getHandler, usesPathPatterns
インターフェース org.springframework.web.servlet.handler.MatchableHandlerMapping から継承されたメソッド
getPatternParser
コンストラクターの詳細
RequestMappingHandlerMapping
public RequestMappingHandlerMapping()
メソッドの詳細
setPatternParser
クラスからコピーされた説明:AbstractHandlerMapping
URL パスマッチングのためにpatterns
を解析するようにPathPatternParser
を設定します。解析されたパターンは、AntPathMatcher
による文字列パスマッチングのよりモダンで効率的な代替手段を提供します。注意 : このプロパティは、以下のプロパティと相互に排他的です。これらはすべて、解析されたパターンには必要なく、
PathPatternParser
が使用可能な場合は無視されます。AbstractHandlerMapping.setAlwaysUseFullPath(boolean)
-- 解析されたパターンは常に完全なパスを使用し、サーブレットがパスプレフィックスによってマップされている場合にのみ servletPath を考慮します。AbstractHandlerMapping.setRemoveSemicolonContent(boolean)
-- 解析されたパターンは、パスマッチングの目的でセミコロンの内容を常に無視しますが、パスパラメーターは@MatrixVariable
を介してコントローラーで使用できます。AbstractHandlerMapping.setUrlDecode(boolean)
-- 解析されたパターンは、一度に 1 つのデコードされたパスセグメントに一致するため、完全なパスをデコードする必要はありません。AbstractHandlerMapping.setUrlPathHelper(org.springframework.web.util.UrlPathHelper)
-- 解析されたパターンの場合、リクエストパスはDispatcherServlet
またはServletRequestPathUtils
を使用してServletRequestPathFilter
で一度解析され、リクエスト属性にキャッシュされます。AbstractHandlerMapping.setPathMatcher(org.springframework.util.PathMatcher)
-- 解析されたパターンは、パスマッチングのロジックをカプセル化し、PathMatcher
を必要とします。
デフォルトでは、6.0 の時点で、これはデフォルト設定の
PathPatternParser
インスタンスに設定されているため、解析済みパターンの使用が有効になっています。これをnull
に設定すると、代わりにAntPathMatcher
による文字列パスマッチングに切り替わります。- オーバーライド:
- クラス
AbstractHandlerMethodMapping<RequestMappingInfo>
のsetPatternParser
- パラメーター:
patternParser
- 使用するパーサー
setUseSuffixPatternMatch
使用すべきではありません。5.2.4 以降。パス拡張構成オプションの非推奨については、クラスレベルのメモを参照してください。このメソッドに代わるものはないため、5.2.x ではfalse
に設定する必要があります。5.3 では、デフォルトがfalse
に変更され、このプロパティの使用は不要になります。パターンをリクエストに一致させるときにサフィックスパターン一致(".*" )を使用するかどうか。有効にすると、"/users" にマップされたメソッドは "/users.*" にも一致します。デフォルト値では、これは
false
に設定されています。また、許可する特定のサフィックスのより詳細な制御については、
setUseRegisteredSuffixPatternMatch(boolean)
を参照してください。注意 :
setPatternParser(PathPatternParser)
が構成されている場合、このプロパティは無視されます。setUseRegisteredSuffixPatternMatch
@DeprecatedSE public void setUseRegisteredSuffixPatternMatch(boolean useRegisteredSuffixPatternMatch) 使用すべきではありません。5.2.4 以降。パス拡張構成オプションの非推奨については、クラスレベルのメモを参照してください。ContentNegotiationManager
で明示的に登録されたパス拡張に対してのみ、サフィックスパターンマッチングが機能するかどうか。これは一般に、あいまいさを減らし、"." のような課題を回避するために推奨されます。他の理由でパスに表示されます。デフォルトでは、これは "false" に設定されています。
注意 :
setPatternParser(PathPatternParser)
が構成されている場合、このプロパティは無視されます。setUseTrailingSlashMatch
使用すべきではありません。末尾のスラッシュの有無に関係なく、URL と一致するかどうか。有効にすると、"/users" にマップされたメソッドは "/users/" にも一致します。プロパティの非推奨をサポートするために、6.0 でデフォルトが
true
からfalse
に変更されました。setPathPrefixes
コントローラーメソッドに適用するパスプレフィックスを構成します。プレフィックスは、コントローラー型がマップ内の対応する
Predicate
と一致するすべての@RequestMapping
メソッドおよび@HttpExchange
メソッドのマッピングを強化するために使用されます。入力マップの順序が予測可能であると仮定して、最初に一致する述語の接頭辞が使用されます。HandlerTypePredicate
を使用してコントローラーをグループ化することを検討してください。- パラメーター:
prefixes
- キーとしてパス接頭辞を持つマップ- 導入:
- 5.1
getPathPrefixes
構成されたパスは、読み取り専用の、おそらく空のマップとしてプレフィックスします。- 導入:
- 5.1
setContentNegotiationManager
リクエストされたメディア型を判別するために使用するContentNegotiationManager
を設定します。設定されていない場合、デフォルトのコンストラクターが使用されます。getContentNegotiationManager
設定されたContentNegotiationManager
を返します。setEmbeddedValueResolver
インターフェースからコピーされた説明:EmbeddedValueResolverAware
StringValueResolver を設定して、埋め込まれた定義値の解決に使用します。- 次で指定:
- インターフェース
EmbeddedValueResolverAware
のsetEmbeddedValueResolver
afterPropertiesSet
public void afterPropertiesSet()クラスからコピーされた説明:AbstractHandlerMethodMapping
初期化時にハンドラーメソッドを検出します。- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
- オーバーライド:
- クラス
AbstractHandlerMethodMapping<RequestMappingInfo>
のafterPropertiesSet
- 関連事項:
useSuffixPatternMatch
使用すべきではありません。5.2.4 以降。setUseSuffixPatternMatch(boolean)
の非推奨通知を参照してください。パターンマッチングに登録済みのサフィックスを使用するかどうか。useRegisteredSuffixPatternMatch
使用すべきではありません。5.2.4 以降。setUseRegisteredSuffixPatternMatch(boolean)
の非推奨通知を参照してください。パターンマッチングに登録済みのサフィックスを使用するかどうか。useTrailingSlashMatch
public boolean useTrailingSlashMatch()末尾のスラッシュの有無に関係なく、URL に一致するかどうか。getFileExtensions
使用すべきではありません。5.2.4 現在。パス拡張設定オプションの廃止に関するクラスレベルの注意を参照してください。サフィックスパターンマッチングに使用するファイル拡張子を返します。getBuilderConfiguration
このHandlerMapping
の内部構成を反映し、RequestMappingInfo.Builder.options(RequestMappingInfo.BuilderConfiguration)
の設定に使用できるRequestMappingInfo.BuilderConfiguration
を取得します。これは、
registerHandlerMethod(Object, Method, RequestMappingInfo)
を介したリクエストマッピングのプログラムによる登録に役立ちます。- 戻り値:
- 内部状態を反映するビルダー構成
- 導入:
- 5.3.14
isHandler
指定された型がハンドラーメソッドを持つハンドラーかどうか。ハンドラーが型レベルの @
Controller
アノテーションを持つことを期待します。- 次で指定:
- クラス
AbstractHandlerMethodMapping<RequestMappingInfo>
のisHandler
- パラメーター:
beanType
- チェックされている Bean の型- 戻り値:
- これがハンドラー型の場合は "true"、そうでない場合は "false"。
getMappingForMethod
- 次で指定:
- クラス
AbstractHandlerMethodMapping<RequestMappingInfo>
のgetMappingForMethod
- パラメーター:
method
- マッピングを提供する方法handlerType
- ハンドラー型、場合によってはメソッドの宣言クラスのサブ型- 戻り値:
- 作成された
RequestMappingInfo
、またはメソッドに@RequestMapping
または@HttpExchange
アノテーションがない場合はnull
- 関連事項:
getCustomTypeCondition
カスタム型レベルのリクエスト条件を指定します。カスタムRequestCondition
は、カスタムリクエスト条件を組み合わせて比較できるように、このメソッドへのすべての呼び出しから同じ条件型が返される限り、どの型でもかまいません。カスタム条件型用に
AbstractRequestCondition
を継承し、CompositeRequestCondition
を使用して複数のカスタム条件を提供することを検討してください。- パラメーター:
handlerType
- 条件を作成するハンドラー型- 戻り値:
- 条件、または
null
getCustomMethodCondition
カスタムのメソッドレベルのリクエスト条件を指定します。カスタムRequestCondition
は、カスタムリクエスト条件を組み合わせて比較できるように、このメソッドへのすべての呼び出しから同じ条件型が返される限り、どの型でもかまいません。カスタム条件型用に
AbstractRequestCondition
を継承し、CompositeRequestCondition
を使用して複数のカスタム条件を提供することを検討してください。- パラメーター:
method
- 条件を作成するハンドラーメソッド- 戻り値:
- 条件、または
null
createRequestMappingInfo
protected RequestMappingInfo createRequestMappingInfo(RequestMapping requestMapping, @Nullable RequestCondition<?> customCondition) 提供された@RequestMapping
アノテーション、メタアノテーション、またはアノテーション階層内でアノテーション属性をマージした合成結果からRequestMappingInfo
を作成します。createRequestMappingInfo
protected RequestMappingInfo createRequestMappingInfo(HttpExchange httpExchange, @Nullable RequestCondition<?> customCondition) 提供された@HttpExchange
アノテーション、メタアノテーション、またはアノテーション階層内でアノテーション属性をマージした合成結果からRequestMappingInfo
を作成します。- 導入:
- 6.1
resolveEmbeddedValuesInPatterns
指定されたパターンの配列のプレースホルダー値を解決します。- 戻り値:
- 更新されたパターンを持つ新しい配列
registerMapping
クラスからコピーされた説明:AbstractHandlerMethodMapping
指定されたマッピングを登録します。このメソッドは、初期化が完了した後、実行時に呼び出すことができます。
- オーバーライド:
- クラス
AbstractHandlerMethodMapping<RequestMappingInfo>
のregisterMapping
- パラメーター:
mapping
- ハンドラーメソッドのマッピングhandler
- ハンドラーmethod
- メソッド
registerHandlerMethod
ハンドラーメソッドとその一意のマッピングを登録します。検出された各ハンドラーメソッドに対して起動時に呼び出されます。注意 :
RequestMappingInfo
を作成するには、getBuilderConfiguration()
を使用し、このHandlerMapping
の構成方法と一致するようにRequestMappingInfo.Builder.options(RequestMappingInfo.BuilderConfiguration)
のオプションを設定してください。これは、たとえば、PathPattern
またはPathMatcher
ベースのマッチングを確実に使用するために重要です。- オーバーライド:
- クラス
AbstractHandlerMethodMapping<RequestMappingInfo>
のregisterHandlerMethod
- パラメーター:
handler
- ハンドラーまたはハンドラーインスタンスの Bean 名method
- 登録する方法mapping
- ハンドラーメソッドに関連付けられたマッピング条件
match
インターフェースからコピーされた説明:MatchableHandlerMapping
リクエストが指定されたパターンに一致するかどうかを判別します。MatchableHandlerMapping.getPatternParser()
がnull
を返す場合、このメソッドを使用します。これは、HandlerMapping
が文字列パターンマッチングを使用していることを意味します。- 次で指定:
- インターフェース
MatchableHandlerMapping
のmatch
- パラメーター:
request
- 現在のリクエストpattern
- マッチングするパターン- 戻り値:
- リクエストマッチングの結果、または存在しない場合は
null
initCorsConfiguration
@Nullable protected CorsConfiguration initCorsConfiguration(ObjectSE handler, MethodSE method, RequestMappingInfo mappingInfo) クラスからコピーされた説明:AbstractHandlerMethodMapping
マッピングの CORS 設定を抽出して返します。- オーバーライド:
- クラス
AbstractHandlerMethodMapping<RequestMappingInfo>
のinitCorsConfiguration