public abstract class RequestMappingInfoHandlerMapping extends AbstractHandlerMethodMapping<RequestMappingInfo>
RequestMappingInfo defines
the mapping between a request and a handler method.mappingsLoggerloggerBEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTEHIGHEST_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, unregisterMappingformatMappingName, getCorsProcessor, getHandler, getOrder, getPathPatternParser, setBeanName, setCorsConfigurations, setCorsConfigurationSource, setCorsProcessor, setOrder, setUseCaseSensitiveMatch, setUseTrailingSlashMatchgetApplicationContext, getMessageSourceAccessor, initApplicationContext, initApplicationContext, isContextRequired, obtainApplicationContext, requiredContextClass, setApplicationContextprotected Set<String> getDirectPaths(RequestMappingInfo info)
AbstractHandlerMethodMappinggetDirectPaths 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)
AbstractHandlerMethodMappinggetHandlerInternal 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_ATTRIBUTEprotected HandlerMethod handleNoMatch(Set<RequestMappingInfo> infos, ServerWebExchange exchange) throws Exception
handleNoMatch in class AbstractHandlerMethodMapping<RequestMappingInfo>infos - all registered mappingsexchange - the current exchangenullMethodNotAllowedException - 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