Class RequestMappingInfoHandlerMapping
java.lang.Object
org.springframework.context.support.ApplicationObjectSupport
org.springframework.web.reactive.handler.AbstractHandlerMapping
org.springframework.web.reactive.result.method.AbstractHandlerMethodMapping<RequestMappingInfo>
org.springframework.web.reactive.result.method.RequestMappingInfoHandlerMapping
- All Implemented Interfaces:
Aware, BeanNameAware, InitializingBean, ApplicationContextAware, Ordered, 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:
- 5.0
- Author:
- Rossen Stoyanchev, Sam Brannen
-
Field Summary
Fields inherited from class AbstractHandlerMapping
mappingsLoggerFields inherited from class ApplicationObjectSupport
loggerFields inherited from interface HandlerMapping
API_VERSION_ATTRIBUTE, BEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTEFields inherited from interface Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturn 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 @Nullable RequestMappingInfogetMatchingMapping(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 voidhandleMatch(RequestMappingInfo info, HandlerMethod handlerMethod, ServerWebExchange exchange) Expose URI template variables, matrix variables, and producible media types in the request.protected @Nullable HandlerMethodhandleNoMatch(Set<RequestMappingInfo> infos, ServerWebExchange exchange) Iterate all RequestMappingInfos once again, look if any match by URL at least and raise exceptions accordingly.Methods inherited from class AbstractHandlerMethodMapping
afterPropertiesSet, createHandlerMethod, detectHandlerMethods, getCorsConfiguration, getHandlerMethods, getMappingForMethod, handlerMethodsInitialized, hasCorsConfigurationSource, initCorsConfiguration, initHandlerMethods, isHandler, lookupHandlerMethod, registerHandlerMethod, registerMapping, unregisterMappingMethods inherited from class AbstractHandlerMapping
formatMappingName, getApiVersionStrategy, getCorsProcessor, getHandler, getOrder, getPathPatternParser, setApiVersionStrategy, setBeanName, setCorsConfigurations, setCorsConfigurationSource, setCorsProcessor, setOrder, setUseCaseSensitiveMatch
-
Constructor Details
-
RequestMappingInfoHandlerMapping
public RequestMappingInfoHandlerMapping()
-
-
Method Details
-
getDirectPaths
Description copied from class:AbstractHandlerMethodMappingReturn the request mapping paths that are not patterns.- Overrides:
getDirectPathsin classAbstractHandlerMethodMapping<RequestMappingInfo>
-
getMatchingMapping
protected @Nullable 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.- Specified by:
getMatchingMappingin classAbstractHandlerMethodMapping<RequestMappingInfo>- Parameters:
info- the mapping to get a match forexchange- the current exchange- Returns:
- an info in case of a match; or
nullotherwise.
-
getMappingComparator
Provide a Comparator to sort RequestMappingInfos matched to a request.- Specified by:
getMappingComparatorin classAbstractHandlerMethodMapping<RequestMappingInfo>- Parameters:
exchange- the current exchange- Returns:
- the comparator (never
null)
-
getHandlerInternal
Description copied from class:AbstractHandlerMethodMappingLook up a handler method for the given request.- Overrides:
getHandlerInternalin classAbstractHandlerMethodMapping<RequestMappingInfo>- Parameters:
exchange- the current exchange- Returns:
Monofor the matching handler, if any
-
handleMatch
protected void handleMatch(RequestMappingInfo info, HandlerMethod handlerMethod, ServerWebExchange exchange) Expose URI template variables, matrix variables, and producible media types in the request.- Overrides:
handleMatchin classAbstractHandlerMethodMapping<RequestMappingInfo>- Parameters:
info- the matching mappinghandlerMethod- the matching methodexchange- the current exchange- See Also:
-
handleNoMatch
protected @Nullable HandlerMethod handleNoMatch(Set<RequestMappingInfo> infos, ServerWebExchange exchange) throws Exception Iterate all RequestMappingInfos once again, look if any match by URL at least and raise exceptions accordingly.- Overrides:
handleNoMatchin classAbstractHandlerMethodMapping<RequestMappingInfo>- Parameters:
infos- all registered mappingsexchange- the current exchange- Returns:
- an alternative HandlerMethod or
null - Throws:
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
-