org.springframework.web.servlet.DispatcherServlet-doDispatch-getHandlerAdapter

    技术2023-06-02  89

    org.springframework.web.servlet.DispatcherServlet#doDispatch中

    /** * 3.根据mappedHandler HandlerExecutionChain HandlerAdapter适配器 */ // Determine handler adapter for the current request. HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());

    getHandlerAdapter方法

    protected HandlerAdapter getHandlerAdapter(Object handler) throws ServletException { if (this.handlerAdapters != null) { for (HandlerAdapter adapter : this.handlerAdapters) { /** 循环判断哪个 */ if (adapter.supports(handler)) { return adapter; } } }

    HttpRequestHandlerAdapter

    如果实现了HttpRequestHandler就走这个

    public class HttpRequestHandlerAdapter implements HandlerAdapter { @Override public boolean supports(Object handler) { //判断 下类型 return (handler instanceof HttpRequestHandler); }

    SimpleControllerHandlerAdapter

    如果是实现了Controller接口就走这个

    public class SimpleControllerHandlerAdapter implements HandlerAdapter { @Override public boolean supports(Object handler) { return (handler instanceof Controller); }

    RequestMappingHandlerAdapter

    public final boolean supports(Object handler) { return (handler instanceof HandlerMethod && supportsInternal((HandlerMethod) handler)); }
    Processed: 0.013, SQL: 10