目录

Spring-MVC-工作原理和流程

目录

Spring MVC 工作原理和流程

SpringMVC 对传统的MVC做了扩展,将 model 层分为了业务模型 Service 和数据模型 Repository

https://i-blog.csdnimg.cn/direct/27e88885276d491db2261246af1bad4d.png

工作原理

  1. 前端的请求会首先进过 DispatcherServlet 前端调度器 ,这个组件是整个MVC的核心调度组件,所有请求都经过它的处理和分发。

  2. 然后 调度器 会将路径传递给 HandlerMapping ,它维护了一个从 URL到具体处理器对象的映射关系相当于指南 ,查询当前请求需要被 Controller 层哪个具体的方法执行,将处理链返回,处理链中包括拦截器

  3. 前端调度器接受到调用链,会先执行调用链中的拦截器方法,然后 将请求参数传递给适配器 HanderAdaptor

    • HanderAdaptor 作用就是处理请求参数和响应数据,转化和封装
    • 具体就是是选择合适的适配器
    • 对于传统控制器 ControllerDispatcherServlet 会选择 方法适配器
    • 对于 函数式控制器DispatcherServlet 会选择 能够处理函数式路由 的适配器。
  4. HanderAdaptor 会将封装好的参数传入 处理器 ,即Controller的具体方法中, 执行并返回 ,这里如果有拦截器,还会执行它的后置方法

  5. 如果是前后端不分离的,那么就先将响应数据传递到视图解析器 ViewResovler 解析视图,呈现数据给用户。

  6. 如果是前后端分离项目,后端直接通过 DispatherSevlet 返回JSON数据给前端,就不需要视图解析器!