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 |
---|---|
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 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