public abstract class RequestMappingInfoHandlerMapping extends AbstractHandlerMethodMapping<RequestMappingInfo>
RequestMappingInfo
defines
the mapping between a request and a handler method.mappingsLogger
BEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE
Constructor and Description |
---|
RequestMappingInfoHandlerMapping() |
Modifier and Type | Method and Description |
---|---|
protected Set<String> |
getDirectPaths(RequestMappingInfo info)
Return the request mapping paths that are not patterns.
|
reactor.core.publisher.Mono<org.springframework.web.method.HandlerMethod> |
getHandlerInternal(org.springframework.web.server.ServerWebExchange exchange)
Look up a handler method for the given request.
|
protected Comparator<RequestMappingInfo> |
getMappingComparator(org.springframework.web.server.ServerWebExchange exchange)
Provide a Comparator to sort RequestMappingInfos matched to a request.
|
protected RequestMappingInfo |
getMatchingMapping(RequestMappingInfo info,
org.springframework.web.server.ServerWebExchange exchange)
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,
org.springframework.web.method.HandlerMethod handlerMethod,
org.springframework.web.server.ServerWebExchange exchange)
Expose URI template variables, matrix variables, and producible media types in the request.
|
protected org.springframework.web.method.HandlerMethod |
handleNoMatch(Set<RequestMappingInfo> infos,
org.springframework.web.server.ServerWebExchange exchange)
Iterate all RequestMappingInfos once again, look if any match by URL at
least and raise exceptions accordingly.
|
afterPropertiesSet, createHandlerMethod, detectHandlerMethods, getCorsConfiguration, getHandlerMethods, getMappingForMethod, handlerMethodsInitialized, hasCorsConfigurationSource, initCorsConfiguration, initHandlerMethods, isHandler, lookupHandlerMethod, registerHandlerMethod, registerMapping, unregisterMapping
formatMappingName, getCorsProcessor, getHandler, getOrder, getPathPatternParser, setBeanName, setCorsConfigurations, setCorsConfigurationSource, setCorsProcessor, setOrder, setUseCaseSensitiveMatch, setUseTrailingSlashMatch
protected Set<String> getDirectPaths(RequestMappingInfo info)
AbstractHandlerMethodMapping
getDirectPaths
in class AbstractHandlerMethodMapping<RequestMappingInfo>
protected RequestMappingInfo getMatchingMapping(RequestMappingInfo info, org.springframework.web.server.ServerWebExchange exchange)
getMatchingMapping
in class AbstractHandlerMethodMapping<RequestMappingInfo>
info
- the mapping to get a match forexchange
- the current exchangenull
otherwise.protected Comparator<RequestMappingInfo> getMappingComparator(org.springframework.web.server.ServerWebExchange exchange)
getMappingComparator
in class AbstractHandlerMethodMapping<RequestMappingInfo>
exchange
- the current exchangenull
)public reactor.core.publisher.Mono<org.springframework.web.method.HandlerMethod> getHandlerInternal(org.springframework.web.server.ServerWebExchange exchange)
AbstractHandlerMethodMapping
getHandlerInternal
in class AbstractHandlerMethodMapping<RequestMappingInfo>
exchange
- the current exchangeMono
for the matching handler, if anyprotected void handleMatch(RequestMappingInfo info, org.springframework.web.method.HandlerMethod handlerMethod, org.springframework.web.server.ServerWebExchange exchange)
handleMatch
in class AbstractHandlerMethodMapping<RequestMappingInfo>
info
- the matching mappinghandlerMethod
- the matching methodexchange
- the current exchangeHandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE
,
HandlerMapping.MATRIX_VARIABLES_ATTRIBUTE
,
HandlerMapping.PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE
protected org.springframework.web.method.HandlerMethod handleNoMatch(Set<RequestMappingInfo> infos, org.springframework.web.server.ServerWebExchange exchange) throws Exception
handleNoMatch
in class AbstractHandlerMethodMapping<RequestMappingInfo>
infos
- all registered mappingsexchange
- the current exchangenull
org.springframework.web.server.MethodNotAllowedException
- for matches by URL but not by HTTP methodorg.springframework.web.server.UnsupportedMediaTypeStatusException
- if there are matches by URL
and HTTP method but not by consumable media typesorg.springframework.web.server.NotAcceptableStatusException
- if there are matches by URL and HTTP
method but not by producible media typesorg.springframework.web.server.ServerWebInputException
- if there are matches by URL and HTTP
method but not by query parameter conditionsException
- provides details that can be translated into an error status code