类 RouterFunctionMapping

java.lang.Object
cn.taketoday.context.support.ApplicationObjectSupport
cn.taketoday.web.handler.AbstractHandlerMapping
cn.taketoday.web.handler.function.support.RouterFunctionMapping
所有已实现的接口:
cn.taketoday.beans.factory.Aware, cn.taketoday.beans.factory.BeanNameAware, cn.taketoday.beans.factory.InitializingBean, cn.taketoday.context.ApplicationContextAware, cn.taketoday.context.expression.EmbeddedValueResolverAware, cn.taketoday.core.Ordered, HandlerMapping

public class RouterFunctionMapping extends AbstractHandlerMapping implements cn.taketoday.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.

从以下版本开始:
4.0
作者:
Arjen Poutsma, Sebastien Deleuze, Brian Clozel, Harry Yang
  • 字段详细资料

    • routerFunction

      @Nullable private RouterFunction<?> routerFunction
    • messageConverters

      private List<HttpMessageConverter<?>> messageConverters
    • detectHandlerFunctionsInAncestorContexts

      private boolean detectHandlerFunctionsInAncestorContexts
  • 构造器详细资料

    • RouterFunctionMapping

      public RouterFunctionMapping()
      Create an empty RouterFunctionMapping.

      If this constructor is used, this mapping will detect all RouterFunction instances available in the application context.

    • RouterFunctionMapping

      public RouterFunctionMapping(RouterFunction<?> routerFunction)
      Create a RouterFunctionMapping with the given RouterFunction.

      If this constructor is used, no application context detection will occur.

      参数:
      routerFunction - the router function to use for mapping
  • 方法详细资料

    • setRouterFunction

      public void setRouterFunction(@Nullable RouterFunction<?> routerFunction)
      Set the router function to map to.

      If this property is used, no application context detection will occur.

    • getRouterFunction

      @Nullable public RouterFunction<?> getRouterFunction()
      Return the configured RouterFunction.

      Note: When router functions are detected from the ApplicationContext, this method may return null if invoked prior to afterPropertiesSet().

      返回:
      the router function or null
    • setMessageConverters

      public void setMessageConverters(List<HttpMessageConverter<?>> messageConverters)
      Set the message body converters to use.

      These converters are used to convert from and to HTTP requests and responses.

    • setDetectHandlerFunctionsInAncestorContexts

      public void setDetectHandlerFunctionsInAncestorContexts(boolean detectHandlerFunctionsInAncestorContexts)
      Set whether to detect handler functions in ancestor ApplicationContexts.

      Default is "false": Only handler functions in the current ApplicationContext will be detected, i.e. only in the context that this HandlerMapping itself is defined in (typically the current DispatcherServlet's context).

      Switch this flag on to detect handler beans in ancestor contexts (typically the Infra root WebApplicationContext) as well.

    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      指定者:
      afterPropertiesSet 在接口中 cn.taketoday.beans.factory.InitializingBean
      抛出:
      Exception
    • initRouterFunctions

      private void initRouterFunctions()
      Detect all router functions in the current application context.
    • logRouterFunctions

      private void logRouterFunctions(List<RouterFunction> routerFunctions)
    • initMessageConverters

      private void initMessageConverters()
      Initializes a default set of message converters.
    • getHandlerInternal

      @Nullable protected Object getHandlerInternal(RequestContext context) throws Exception
      从类复制的说明: AbstractHandlerMapping
      Look up a handler for the given request, returning null if no specific one is found. This method is called by AbstractHandlerMapping.getHandler(cn.taketoday.web.RequestContext); a null return value will lead to the default handler, if one is set.

      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 thus allowing the CORS configuration to be obtained via AbstractHandlerMapping.getCorsConfiguration(Object, RequestContext),

      Note: This method may also return a pre-built HandlerExecutionChain, combining a handler object with dynamically determined interceptors. Statically specified interceptors will get merged into such an existing chain.

      指定者:
      getHandlerInternal 在类中 AbstractHandlerMapping
      参数:
      context - current HTTP request
      返回:
      the corresponding handler instance, or null if none found
      抛出:
      Exception - if there is an internal error