当前位置: 首页 > article >正文

Spring MVC 工作原理和流程

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

工作原理

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

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

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

    • HanderAdaptor作用就是处理请求参数和响应数据,转化和封装

    • 具体就是是选择合适的适配器

    • 对于传统控制器ControllerDispatcherServlet会选择方法适配器

    • 对于函数式控制器DispatcherServlet会选择能够处理函数式路由的适配器。

  4. HanderAdaptor会将封装好的参数传入处理器,即Controller的具体方法中,执行并返回,这里如果有拦截器,还会执行它的后置方法

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

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


http://www.kler.cn/a/582303.html

相关文章:

  • ubuntu中用docker下载opengauss
  • 大语言模型中Token的输出过程
  • git设置本地仓库和远程仓库
  • Linux第0节:Linux环境的搭建
  • 003-SpringCloud Alibaba-Nacos(配置中心)
  • 【redis】布隆过滤器的Java实现
  • leetcode日记(93)从中序与后序遍历序列构造二叉树
  • C 语言数据结构(三):栈和队列
  • 【3D视觉学习笔记1】针孔相机模型与坐标系变换
  • Linux进程管理15 - CFS调度器2 - 数据结构关系
  • c#25/3/11 周二
  • WHAT - 前端性能监控和错误追踪(Sentry 篇)
  • 【A2DP】蓝牙A2DP协议剖析:从架构到规范
  • 2025-03-11 学习记录--C/C++-PTA 习题11-5 指定位置输出字符串
  • 详细介绍c++中的文件处理
  • nginx 代理 redis
  • git子仓库管理的两种方式
  • 从零开发Chrome广告拦截插件:开发、打包到发布全攻略
  • C++ 标准库:string 类、vector/List 容器与文件操作深度剖析
  • Android JNI二维码生成与优化方案