クラス AbstractHandlerMethodMapping<T>
- 型パラメーター:
T
- ハンドラーメソッドを受信リクエストに一致させるために必要な条件を含むHandlerMethod
のマッピング。
- 実装されたすべてのインターフェース:
Aware
、BeanNameAware
、InitializingBean
、ApplicationContextAware
、Ordered
、ServletContextAware
、HandlerMapping
- 既知の直属サブクラス
RequestMappingInfoHandlerMapping
HandlerMethod
の間のマッピングを定義する HandlerMapping
実装の抽象基本クラス。 登録された各ハンドラーメソッドについて、マッピング型 <T>
の詳細を定義するサブクラスで一意のマッピングが維持されます。
- 導入:
- 3.1
- 作成者:
- Arjen Poutsma, Rossen Stoyanchev, Juergen Hoeller, Sam Brannen
フィールドのサマリー
クラス 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 HandlerMethod
createHandlerMethod
(ObjectSE handler, MethodSE method) HandlerMethod インスタンスを作成します。protected void
detectHandlerMethods
(ObjectSE handler) 指定されたハンドラー Bean でハンドラーメソッドを探します。protected StringSE[]
アプリケーションコンテキストで候補 Bean の名前を決定します。protected CorsConfiguration
getCorsConfiguration
(ObjectSE handler, HttpServletRequestEE request) 指定されたハンドラーの CORS 構成を取得します。getDirectPaths
(T mapping) パターンではないリクエストマッピングパスを返します。protected HandlerMethod
getHandlerInternal
(HttpServletRequestEE request) 指定されたリクエストのハンドラーメソッドを検索します。すべてのマッピングと HandlerMethod を含む(読み取り専用)マップを返します。getHandlerMethodsForMappingName
(StringSE mappingName) 指定されたマッピング名のハンドラーメソッドを返します。protected abstract ComparatorSE<T>
getMappingComparator
(HttpServletRequestEE request) 一致するマッピングをソートするためのコンパレーターを返します。protected abstract T
getMappingForMethod
(MethodSE method, ClassSE<?> handlerType) ハンドラーメソッドのマッピングを提供します。getMappingPathPatterns
(T mapping) 使用すべきではありません。protected abstract T
getMatchingMapping
(T mapping, HttpServletRequestEE request) マッピングが現在のリクエストに一致するかどうかを確認し、現在のリクエストに関連する条件を含む(潜在的に新しい)マッピングを返します。構成された命名戦略またはnull
を返します。protected void
handleMatch
(T mapping, StringSE lookupPath, HttpServletRequestEE request) 一致するマッピングが見つかったときに呼び出されます。protected HandlerMethod
handleNoMatch
(SetSE<T> mappings, StringSE lookupPath, HttpServletRequestEE request) 一致するマッピングが見つからないときに呼び出されます。protected void
handlerMethodsInitialized
(MapSE<T, HandlerMethod> handlerMethods) すべてのハンドラーメソッドが検出された後に呼び出されます。protected boolean
hasCorsConfigurationSource
(ObjectSE handler) このハンドラーにCorsConfigurationSource
がある場合、true
を返します。protected CorsConfiguration
initCorsConfiguration
(ObjectSE handler, MethodSE method, T mapping) マッピングの CORS 設定を抽出して返します。protected void
ApplicationContext で Bean をスキャンし、ハンドラーメソッドを検出して登録します。protected abstract boolean
指定された型がハンドラーメソッドを持つハンドラーかどうか。protected HandlerMethod
lookupHandlerMethod
(StringSE lookupPath, HttpServletRequestEE request) 現在のリクエストに最適なハンドラーメソッドを検索します。protected void
processCandidateBean
(StringSE beanName) 指定された候補 Bean の型を判別し、ハンドラー型として識別された場合はdetectHandlerMethods(java.lang.Object)
を呼び出します。protected void
registerHandlerMethod
(ObjectSE handler, MethodSE method, T mapping) ハンドラーメソッドとその一意のマッピングを登録します。void
registerMapping
(T mapping, ObjectSE handler, MethodSE method) 指定されたマッピングを登録します。void
setDetectHandlerMethodsInAncestorContexts
(boolean detectHandlerMethodsInAncestorContexts) 祖先 ApplicationContexts の Bean でハンドラーメソッドを検出するかどうか。void
setHandlerMethodMappingNamingStrategy
(HandlerMethodMappingNamingStrategy<T> namingStrategy) マップされたすべてのハンドラーメソッドにデフォルト名を割り当てるために使用する命名戦略を構成します。void
setPatternParser
(PathPatternParser patternParser) URL パスマッチングのためにpatterns
を解析するようにPathPatternParser
を設定します。void
unregisterMapping
(T mapping) 指定されたマッピングを登録解除します。クラス 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
コンストラクターの詳細
AbstractHandlerMethodMapping
public AbstractHandlerMethodMapping()
メソッドの詳細
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
による文字列パスマッチングに切り替わります。- オーバーライド:
- クラス
AbstractHandlerMapping
のsetPatternParser
- パラメーター:
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
構成された命名戦略またはnull
を返します。getHandlerMethods
すべてのマッピングと HandlerMethod を含む(読み取り専用)マップを返します。getHandlerMethodsForMappingName
指定されたマッピング名のハンドラーメソッドを返します。- パラメーター:
mappingName
- マッピング名- 戻り値:
- 一致する HandlerMethod または
null
のリスト。返されたリストは変更されることはなく、反復しても安全です。 - 関連事項:
registerMapping
指定されたマッピングを登録します。このメソッドは、初期化が完了した後、実行時に呼び出すことができます。
- パラメーター:
mapping
- ハンドラーメソッドのマッピングhandler
- ハンドラーmethod
- メソッド
unregisterMapping
指定されたマッピングを登録解除します。このメソッドは、初期化が完了した後、実行時に呼び出すことができます。
- パラメーター:
mapping
- 登録解除するマッピング
afterPropertiesSet
public void afterPropertiesSet()初期化時にハンドラーメソッドを検出します。- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
- 関連事項:
initHandlerMethods
protected void initHandlerMethods()ApplicationContext で Bean をスキャンし、ハンドラーメソッドを検出して登録します。getCandidateBeanNames
アプリケーションコンテキストで候補 Bean の名前を決定します。processCandidateBean
指定された候補 Bean の型を判別し、ハンドラー型として識別された場合はdetectHandlerMethods(java.lang.Object)
を呼び出します。この実装は、
BeanFactory.getType(java.lang.String)
をチェックし、Bean 名でdetectHandlerMethods(java.lang.Object)
を呼び出すことにより、Bean の作成を回避します。- パラメーター:
beanName
- 候補者 Bean の名前- 導入:
- 5.1
- 関連事項:
detectHandlerMethods
指定されたハンドラー Bean でハンドラーメソッドを探します。- パラメーター:
handler
- Bean 名または実際のハンドラーインスタンス- 関連事項:
registerHandlerMethod
ハンドラーメソッドとその一意のマッピングを登録します。検出された各ハンドラーメソッドに対して起動時に呼び出されます。- パラメーター:
handler
- ハンドラーまたはハンドラーインスタンスの Bean 名method
- 登録する方法mapping
- ハンドラーメソッドに関連付けられたマッピング条件- 例外:
IllegalStateExceptionSE
- 別のメソッドが同じマッピングですでに登録されている場合
createHandlerMethod
HandlerMethod インスタンスを作成します。- パラメーター:
handler
- Bean 名または実際のハンドラーインスタンスmethod
- ターゲットメソッド- 戻り値:
- 作成された HandlerMethod
initCorsConfiguration
@Nullable protected CorsConfiguration initCorsConfiguration(ObjectSE handler, MethodSE method, T mapping) マッピングの CORS 設定を抽出して返します。handlerMethodsInitialized
すべてのハンドラーメソッドが検出された後に呼び出されます。- パラメーター:
handlerMethods
- ハンドラーメソッドとマッピングを含む読み取り専用マップ。
getHandlerInternal
@Nullable protected HandlerMethod getHandlerInternal(HttpServletRequestEE request) throws ExceptionSE 指定されたリクエストのハンドラーメソッドを検索します。- 次で指定:
- クラス
AbstractHandlerMapping
のgetHandlerInternal
- パラメーター:
request
- 現在の HTTP リクエスト- 戻り値:
- 対応するハンドラーインスタンス。見つからない場合は
null
- 例外:
ExceptionSE
- 内部エラーがある場合
lookupHandlerMethod
@Nullable protected HandlerMethod lookupHandlerMethod(StringSE lookupPath, HttpServletRequestEE request) throws ExceptionSE 現在のリクエストに最も一致するハンドラーメソッドを検索します。複数の一致が見つかった場合、最適な一致が選択されます。- パラメーター:
lookupPath
- 現在のサーブレットマッピング内のマッピングルックアップパスrequest
- 現在のリクエスト- 戻り値:
- 最適なハンドラーメソッド、または一致しない場合は
null
- 例外:
ExceptionSE
- 関連事項:
handleMatch
一致するマッピングが見つかったときに呼び出されます。- パラメーター:
mapping
- 一致するマッピングlookupPath
- 現在のサーブレットマッピング内のマッピングルックアップパスrequest
- 現在のリクエスト
handleNoMatch
@Nullable protected HandlerMethod handleNoMatch(SetSE<T> mappings, StringSE lookupPath, HttpServletRequestEE request) throws ExceptionSE 一致するマッピングが見つからないときに呼び出されます。- パラメーター:
mappings
- 登録済みのすべてのマッピングlookupPath
- 現在のサーブレットマッピング内のマッピングルックアップパスrequest
- 現在のリクエスト- 例外:
ServletExceptionEE
- エラーの場合ExceptionSE
hasCorsConfigurationSource
クラスからコピーされた説明:AbstractHandlerMapping
このハンドラーにCorsConfigurationSource
がある場合、true
を返します。- オーバーライド:
- クラス
AbstractHandlerMapping
のhasCorsConfigurationSource
getCorsConfiguration
@Nullable protected CorsConfiguration getCorsConfiguration(ObjectSE handler, HttpServletRequestEE request) クラスからコピーされた説明:AbstractHandlerMapping
指定されたハンドラーの CORS 構成を取得します。- オーバーライド:
- クラス
AbstractHandlerMapping
のgetCorsConfiguration
- パラメーター:
handler
- チェックするハンドラー(非null
)。request
- 現在のリクエスト。- 戻り値:
- ハンドラーの CORS 構成、ない場合は
null
isHandler
指定された型がハンドラーメソッドを持つハンドラーかどうか。- パラメーター:
beanType
- チェックされている Bean の型- 戻り値:
- これがハンドラー型の場合は "true"、そうでない場合は "false"。
getMappingForMethod
ハンドラーメソッドのマッピングを提供します。マッピングを提供できないメソッドは、ハンドラーメソッドではありません。- パラメーター:
method
- マッピングを提供する方法handlerType
- ハンドラー型、場合によってはメソッドの宣言クラスのサブ型- 戻り値:
- マッピング、またはメソッドがマッピングされていない場合は
null
getMappingPathPatterns
使用すべきではありません。5.3 以降、代わりにgetDirectPaths(Object)
を介して非パターンマッピングを提供する指定されたマッピングに含まれる URL パスを抽出して返します。getDirectPaths
パターンではないリクエストマッピングパスを返します。- 導入:
- 5.3
getMatchingMapping
マッピングが現在のリクエストに一致するかどうかを確認し、現在のリクエストに関連する条件を含む(潜在的に新しい)マッピングを返します。- パラメーター:
mapping
- 一致を取得するマッピングrequest
- 現在の HTTP サーブレットリクエスト- 戻り値:
- 一致、またはマッピングが一致しない場合は
null
getMappingComparator
一致するマッピングをソートするためのコンパレータを返します。返されたコンパレータは、「より良い」一致をより高い順に並べ替えます。- パラメーター:
request
- 現在のリクエスト- 戻り値:
- コンパレータ (非
null
)
getDirectPaths(Object)
を介して非パターンマッピングを提供する