public abstract class RequestMappingInfoHandlerMapping extends AbstractHandlerMethodMapping<RequestMappingInfo>
RequestMappingInfo
defines
the mapping between a request and a handler method.logger
BEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
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<HandlerMethod> |
getHandlerInternal(ServerWebExchange exchange)
Look up a handler method for the given request.
|
protected Comparator<RequestMappingInfo> |
getMappingComparator(ServerWebExchange exchange)
Provide a Comparator to sort RequestMappingInfos matched to a request.
|
protected RequestMappingInfo |
getMatchingMapping(RequestMappingInfo info,
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,
HandlerMethod handlerMethod,
ServerWebExchange exchange)
Expose URI template variables, matrix variables, and producible media types in the request.
|
protected HandlerMethod |
handleNoMatch(Set<RequestMappingInfo> infos,
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
getApplicationContext, getMessageSourceAccessor, initApplicationContext, initApplicationContext, isContextRequired, obtainApplicationContext, requiredContextClass, setApplicationContext
protected Set<String> getDirectPaths(RequestMappingInfo info)
AbstractHandlerMethodMapping
getDirectPaths
in class AbstractHandlerMethodMapping<RequestMappingInfo>
protected RequestMappingInfo getMatchingMapping(RequestMappingInfo info, ServerWebExchange exchange)
getMatchingMapping
in class AbstractHandlerMethodMapping<RequestMappingInfo>
info
- the mapping to get a match forexchange
- the current exchangenull
otherwise.protected Comparator<RequestMappingInfo> getMappingComparator(ServerWebExchange exchange)
getMappingComparator
in class AbstractHandlerMethodMapping<RequestMappingInfo>
exchange
- the current exchangenull
)public reactor.core.publisher.Mono<HandlerMethod> getHandlerInternal(ServerWebExchange exchange)
AbstractHandlerMethodMapping
getHandlerInternal
in class AbstractHandlerMethodMapping<RequestMappingInfo>
exchange
- the current exchangeMono
for the matching handler, if anyprotected void handleMatch(RequestMappingInfo info, HandlerMethod handlerMethod, 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 HandlerMethod handleNoMatch(Set<RequestMappingInfo> infos, ServerWebExchange exchange) throws Exception
handleNoMatch
in class AbstractHandlerMethodMapping<RequestMappingInfo>
infos
- all registered mappingsexchange
- the current exchangenull
MethodNotAllowedException
- for matches by URL but not by HTTP methodUnsupportedMediaTypeStatusException
- if there are matches by URL
and HTTP method but not by consumable media typesNotAcceptableStatusException
- if there are matches by URL and HTTP
method but not by producible media typesServerWebInputException
- 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