public class RouterFunctionMapping extends AbstractHandlerMapping implements org.springframework.beans.factory.InitializingBean
HandlerMapping implementation that supports RouterFunctions.
If no RouterFunction is provided at
construction time, this mapping
will detect all router functions in the application context, and consult them in
order.
mappingsLoggerBEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE| Constructor and Description |
|---|
RouterFunctionMapping()
Create an empty
RouterFunctionMapping. |
RouterFunctionMapping(RouterFunction<?> routerFunction)
Create a
RouterFunctionMapping with the given RouterFunction. |
| Modifier and Type | Method and Description |
|---|---|
void |
afterPropertiesSet() |
protected reactor.core.publisher.Mono<?> |
getHandlerInternal(org.springframework.web.server.ServerWebExchange exchange)
Look up a handler for the given request, returning an empty
Mono
if no specific one is found. |
RouterFunction<?> |
getRouterFunction()
Return the configured
RouterFunction. |
protected void |
initRouterFunctions()
Initialized the router functions by detecting them in the application context.
|
void |
setMessageReaders(List<org.springframework.http.codec.HttpMessageReader<?>> messageReaders)
Configure HTTP message readers to de-serialize the request body with.
|
formatMappingName, getCorsConfiguration, getCorsProcessor, getHandler, getOrder, getPathPatternParser, hasCorsConfigurationSource, setBeanName, setCorsConfigurations, setCorsConfigurationSource, setCorsProcessor, setOrder, setUseCaseSensitiveMatch, setUseTrailingSlashMatchpublic RouterFunctionMapping()
RouterFunctionMapping.
If this constructor is used, this mapping will detect all
RouterFunction instances available in the application context.
public RouterFunctionMapping(RouterFunction<?> routerFunction)
RouterFunctionMapping with the given RouterFunction.
If this constructor is used, no application context detection will occur.
routerFunction - the router function to use for mapping@Nullable public RouterFunction<?> getRouterFunction()
RouterFunction.
Note: When router functions are detected from the
ApplicationContext, this method may return null if invoked
prior to afterPropertiesSet().
nullpublic void setMessageReaders(List<org.springframework.http.codec.HttpMessageReader<?>> messageReaders)
By default this is set to the ServerCodecConfigurer's defaults.
public void afterPropertiesSet()
throws Exception
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBeanExceptionprotected void initRouterFunctions()
protected reactor.core.publisher.Mono<?> getHandlerInternal(org.springframework.web.server.ServerWebExchange exchange)
AbstractHandlerMappingMono
if no specific one is found. This method is called by AbstractHandlerMapping.getHandler(org.springframework.web.server.ServerWebExchange).
On CORS pre-flight requests this method should return a match not for the pre-flight request but for the expected actual request based on the URL path, the HTTP methods from the "Access-Control-Request-Method" header, and the headers from the "Access-Control-Request-Headers" header.
getHandlerInternal in class AbstractHandlerMappingexchange - current exchangeMono for the matching handler, if any