Class RequestMappingInfoHandlerMapping
java.lang.Object
org.springframework.context.support.ApplicationObjectSupport
org.springframework.web.context.support.WebApplicationObjectSupport
org.springframework.web.servlet.handler.AbstractHandlerMapping
org.springframework.web.servlet.handler.AbstractHandlerMethodMapping<RequestMappingInfo>
org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping
- All Implemented Interfaces:
Aware
,BeanNameAware
,InitializingBean
,ApplicationContextAware
,Ordered
,ServletContextAware
,HandlerMapping
- Direct Known Subclasses:
RequestMappingHandlerMapping
public abstract class RequestMappingInfoHandlerMapping
extends AbstractHandlerMethodMapping<RequestMappingInfo>
Abstract base class for classes for which
RequestMappingInfo
defines
the mapping between a request and a handler method.- Since:
- 3.1
- Author:
- Arjen Poutsma, Rossen Stoyanchev
-
Field Summary
Fields inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping
mappingsLogger
Fields inherited from class org.springframework.context.support.ApplicationObjectSupport
logger
Fields inherited from interface 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
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturn the request mapping paths that are not patterns.protected HandlerMethod
getHandlerInternal
(HttpServletRequest request) Look up a handler method for the given request.protected Comparator<RequestMappingInfo>
getMappingComparator
(HttpServletRequest request) Provide a Comparator to sort RequestMappingInfos matched to a request.Get the URL path patterns associated with the suppliedRequestMappingInfo
.protected RequestMappingInfo
getMatchingMapping
(RequestMappingInfo info, HttpServletRequest request) Check if the given RequestMappingInfo matches the current request and return a (potentially new) instance with conditions that match the current request -- for example with a subset of URL patterns.protected void
handleMatch
(RequestMappingInfo info, String lookupPath, HttpServletRequest request) Expose URI template variables, matrix variables, and producible media types in the request.protected HandlerMethod
handleNoMatch
(Set<RequestMappingInfo> infos, String lookupPath, HttpServletRequest request) Iterate all RequestMappingInfo's once again, look if any match by URL at least and raise exceptions according to what doesn't match.Methods inherited from class org.springframework.web.servlet.handler.AbstractHandlerMethodMapping
afterPropertiesSet, createHandlerMethod, detectHandlerMethods, getCandidateBeanNames, getCorsConfiguration, getHandlerMethods, getHandlerMethodsForMappingName, getMappingForMethod, getNamingStrategy, handlerMethodsInitialized, hasCorsConfigurationSource, initCorsConfiguration, initHandlerMethods, isHandler, lookupHandlerMethod, processCandidateBean, registerHandlerMethod, registerMapping, setDetectHandlerMethodsInAncestorContexts, setHandlerMethodMappingNamingStrategy, setPatternParser, unregisterMapping
Methods inherited from class 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
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, obtainApplicationContext, requiredContextClass, setApplicationContext
-
Constructor Details
-
RequestMappingInfoHandlerMapping
protected RequestMappingInfoHandlerMapping()
-
-
Method Details
-
getMappingPathPatterns
Get the URL path patterns associated with the suppliedRequestMappingInfo
.- Overrides:
getMappingPathPatterns
in classAbstractHandlerMethodMapping<RequestMappingInfo>
-
getDirectPaths
Description copied from class:AbstractHandlerMethodMapping
Return the request mapping paths that are not patterns.- Overrides:
getDirectPaths
in classAbstractHandlerMethodMapping<RequestMappingInfo>
-
getMatchingMapping
protected RequestMappingInfo getMatchingMapping(RequestMappingInfo info, HttpServletRequest request) Check if the given RequestMappingInfo matches the current request and return a (potentially new) instance with conditions that match the current request -- for example with a subset of URL patterns.- Specified by:
getMatchingMapping
in classAbstractHandlerMethodMapping<RequestMappingInfo>
- Parameters:
info
- the mapping to get a match forrequest
- the current HTTP servlet request- Returns:
- an info in case of a match; or
null
otherwise.
-
getMappingComparator
Provide a Comparator to sort RequestMappingInfos matched to a request.- Specified by:
getMappingComparator
in classAbstractHandlerMethodMapping<RequestMappingInfo>
- Parameters:
request
- the current request- Returns:
- the comparator (never
null
)
-
getHandlerInternal
Description copied from class:AbstractHandlerMethodMapping
Look up a handler method for the given request.- Overrides:
getHandlerInternal
in classAbstractHandlerMethodMapping<RequestMappingInfo>
- Parameters:
request
- current HTTP request- Returns:
- the corresponding handler instance, or
null
if none found - Throws:
Exception
- if there is an internal error
-
handleMatch
Expose URI template variables, matrix variables, and producible media types in the request.- Overrides:
handleMatch
in classAbstractHandlerMethodMapping<RequestMappingInfo>
- Parameters:
info
- the matching mappinglookupPath
- mapping lookup path within the current servlet mappingrequest
- the current request- See Also:
-
handleNoMatch
protected HandlerMethod handleNoMatch(Set<RequestMappingInfo> infos, String lookupPath, HttpServletRequest request) throws ServletException Iterate all RequestMappingInfo's once again, look if any match by URL at least and raise exceptions according to what doesn't match.- Overrides:
handleNoMatch
in classAbstractHandlerMethodMapping<RequestMappingInfo>
- Parameters:
infos
- all registered mappingslookupPath
- mapping lookup path within the current servlet mappingrequest
- the current request- Throws:
HttpRequestMethodNotSupportedException
- if there are matches by URL but not by HTTP methodHttpMediaTypeNotAcceptableException
- if there are matches by URL but not by consumable/producible media typesServletException
- in case of errors
-