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 org.springframework.web.reactive.handler.AbstractHandlerMapping
mappingsLogger
Fields inherited from class org.springframework.context.support.ApplicationObjectSupport
logger
Fields inherited from interface org.springframework.web.reactive.HandlerMapping
BEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
-
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 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.Methods inherited from class org.springframework.web.reactive.result.method.AbstractHandlerMethodMapping
afterPropertiesSet, createHandlerMethod, detectHandlerMethods, getCorsConfiguration, getHandlerMethods, getMappingForMethod, handlerMethodsInitialized, hasCorsConfigurationSource, initCorsConfiguration, initHandlerMethods, isHandler, lookupHandlerMethod, registerHandlerMethod, registerMapping, unregisterMapping
Methods inherited from class org.springframework.web.reactive.handler.AbstractHandlerMapping
formatMappingName, getCorsProcessor, getHandler, getOrder, getPathPatternParser, setBeanName, setCorsConfigurations, setCorsConfigurationSource, setCorsProcessor, setOrder, setUseCaseSensitiveMatch, setUseTrailingSlashMatch
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, initApplicationContext, initApplicationContext, isContextRequired, obtainApplicationContext, requiredContextClass, setApplicationContext
-
Constructor Details
-
RequestMappingInfoHandlerMapping
public RequestMappingInfoHandlerMapping()
-
-
Method Details
-
getDirectPaths
Description copied from class:AbstractHandlerMethodMapping
Return the request mapping paths that are not patterns.- Overrides:
getDirectPaths
in classAbstractHandlerMethodMapping<RequestMappingInfo>
-
getMatchingMapping
@Nullable 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.- Specified by:
getMatchingMapping
in classAbstractHandlerMethodMapping<RequestMappingInfo>
- Parameters:
info
- the mapping to get a match forexchange
- the current exchange- Returns:
- an info in case of a match; or
null
otherwise.
-
getMappingComparator
Provide a Comparator to sort RequestMappingInfos matched to a request.- Specified by:
getMappingComparator
in classAbstractHandlerMethodMapping<RequestMappingInfo>
- Parameters:
exchange
- the current exchange- Returns:
- the comparator (never
null
)
-
getHandlerInternal
Description copied from class:AbstractHandlerMethodMapping
Look up a handler method for the given request.- Overrides:
getHandlerInternal
in classAbstractHandlerMethodMapping<RequestMappingInfo>
- Parameters:
exchange
- the current exchange- Returns:
Mono
for 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:
handleMatch
in classAbstractHandlerMethodMapping<RequestMappingInfo>
- Parameters:
info
- the matching mappinghandlerMethod
- the matching methodexchange
- the current exchange- See Also:
-
handleNoMatch
@Nullable protected 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:
handleNoMatch
in 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
-