总体流程大概是这样
    1.首选有个统一处理请求的入口
    (对应Springmvc 下的源码在DispatcherServlet 下实现的,该对象在初始化就会把映射器,适配器,试图解析器,异常处理器,文件处理器等等给初始化掉)

    2.随后根据请求路径找到对应的映射器
    (就是找到【最佳匹配的的】路径,具体方法是lookupHandlerMethod方法上)

    3.找到处理请求的适配器
    (获取到HanderExecutionChain后,就会去获得适配器,一般我们获取得到的就是RequestMapperingHandlerAdapter,在代码里,我们经常用到@ResponseBody 和@Requestbody 的解析器,就会在初始化的时候加到参数解析器Listz中,得到适配器之后,)

    4.拦截器前置处理
    (就会执行拦截器前置处理,拦截器前置处理完后,就会调用适配器对象实例的hanlde 方法执行真正的代码逻辑处理,核心的处理逻辑在invokAndHandle 方法中,会获取得到请求的参数并调用,处理返回值,参数的封装以及会处理被适配器的参数解析器进行处理,具体的处理逻辑取决于HttpMessageConverter的实例对象)

    5.真实处理请求(也就是调用真正的代码)

    6.试图解析器处理

    关键信息:DispatcherServlet (入口)
    DispatcherServlet.properties(会初始化对象)
    HandlerMappering(映射器)
    HandleExecutionChain(映射器最终实例+拦截器List)
    HttpRequestHandlerAdater(适配器)
    HttpMessageConverter(数据转化)