Class ReversedProxyHandlerMapping
- java.lang.Object
-
- org.springframework.context.support.ApplicationObjectSupport
-
- org.springframework.web.context.support.WebApplicationObjectSupport
-
- org.springframework.web.servlet.handler.AbstractHandlerMapping
-
- io.microsphere.spring.webmvc.handler.ReversedProxyHandlerMapping
-
- All Implemented Interfaces:
java.util.EventListener
,org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanNameAware
,org.springframework.context.ApplicationContextAware
,org.springframework.context.ApplicationListener<WebEndpointMappingsReadyEvent>
,org.springframework.core.Ordered
,org.springframework.web.context.ServletContextAware
,org.springframework.web.servlet.HandlerMapping
public class ReversedProxyHandlerMapping extends org.springframework.web.servlet.handler.AbstractHandlerMapping implements org.springframework.context.ApplicationListener<WebEndpointMappingsReadyEvent>
The performance optimizationHandlerMapping
to process the forwarded request from the reversed proxy web server, e.g, Spring Cloud Netflix Zuul, Spring Cloud Gateway or others. The request must have a header named"microsphere_wem_id"
, which is a string presentingthe id of endpoint
, used to locate the actualendpoint
easily, such asHandlerMethod
,HandlerFunction
andController
.As a result,
ReversedProxyHandlerMapping
has the higher precedence than others, which ensures that it prioritizesgetting the handler
and avoid the duplication that was executed by the reversed proxy. As regards the details ofendpoint
, it's recommended to read the JavaDoc ofWebEndpointMapping.getEndpoint()
.For now,
ReversedProxyHandlerMapping
only supports to get the handlers fromRequestMappingHandlerMapping
.- Since:
- 1.0.0
- Author:
- Mercy
- See Also:
WebEndpointMapping
,AbstractUrlHandlerMapping
,AbstractHandlerMethodMapping
,HandlerMetadataWebEndpointMappingFactory
,RequestMappingMetadataWebEndpointMappingFactory
,RequestMappingInfoHandlerMapping
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_ORDER
-
Fields inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping
mappingsLogger
-
Fields inherited from interface org.springframework.web.servlet.HandlerMapping
BEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, INTROSPECT_TYPE_LEVEL_MAPPING, LOOKUP_PATH, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE
-
-
Constructor Summary
Constructors Constructor Description ReversedProxyHandlerMapping()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.springframework.web.servlet.HandlerExecutionChain
getHandlerExecutionChain(WebEndpointMapping webEndpointMapping, javax.servlet.http.HttpServletRequest request)
protected java.lang.Object
getHandlerInternal(javax.servlet.http.HttpServletRequest request)
void
onApplicationEvent(WebEndpointMappingsReadyEvent event)
-
Methods inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping
adaptInterceptor, detectMappedInterceptors, extendInterceptors, formatMappingName, getAdaptedInterceptors, getCorsConfiguration, getCorsConfigurationSource, getCorsHandlerExecutionChain, getCorsProcessor, getDefaultHandler, getHandler, getHandlerExecutionChain, getMappedInterceptors, getOrder, getPathMatcher, getPatternParser, getUrlPathHelper, hasCorsConfigurationSource, initApplicationContext, initInterceptors, initLookupPath, setAlwaysUseFullPath, setBeanName, setCorsConfigurations, setCorsConfigurationSource, setCorsProcessor, setDefaultHandler, setInterceptors, setOrder, setPathMatcher, setPatternParser, setRemoveSemicolonContent, setUrlDecode, setUrlPathHelper, usesPathPatterns
-
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
-
-
-
-
Field Detail
-
DEFAULT_ORDER
public static final int DEFAULT_ORDER
- See Also:
- Constant Field Values
-
-
Method Detail
-
getHandlerInternal
protected java.lang.Object getHandlerInternal(javax.servlet.http.HttpServletRequest request) throws java.lang.Exception
- Specified by:
getHandlerInternal
in classorg.springframework.web.servlet.handler.AbstractHandlerMapping
- Throws:
java.lang.Exception
-
getHandlerExecutionChain
@Nullable protected org.springframework.web.servlet.HandlerExecutionChain getHandlerExecutionChain(WebEndpointMapping webEndpointMapping, javax.servlet.http.HttpServletRequest request)
-
onApplicationEvent
public void onApplicationEvent(WebEndpointMappingsReadyEvent event)
- Specified by:
onApplicationEvent
in interfaceorg.springframework.context.ApplicationListener<WebEndpointMappingsReadyEvent>
-
-