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

SpringMVC介绍

spring内部组件流程

请求从用户发起,经过 DispatcherServlet(CEO)协调各组件,最终完成处理并返回视图

  1. 用户发起请求

  2. DispatcherServlet 它是 SpringMVC 的前端控制器,所有请求都先到这里,是整个流程的 “总指挥”。

  3. HandlerMapping DispatcherServlet 会先找 HandlerMapping,它的作用是根据请求路径(比如/user/login),找到对应的 Controller 方法(比如login())。

  4. HandlerAdapter 它是 “适配器”,负责处理参数和响应的适配: 把请求中的原始参数(比如用户名)转换成 Controller 方法需要的格式(比如String username); 把 Controller 返回的结果(比如return login)封装成响应数据。

  5. Controller → Service → Dao Controller 调用 Service 层,Service 再调用 Dao 层(操作数据库,比如校验用户名密码),完成业务逻辑后,返回结果(比如return login)。

  6. ViewResolver Controller 返回的结果(比如login)会被 DispatcherServlet 传给 ViewResolver(视图解析器); 它根据前缀(比如/web-inf/html/)+ 返回值(login)+ 后缀(.html),拼接出最终的视图路径(比如/web-inf/html/login.html)。

  7. 返回视图给用户 VewResolver 找到对应的login.html页面,DispatcherServlet 将页面返回给用户,完成整个请求流程。

简单总结流程:用户请求 → DispatcherServlet → HandlerMapping(找 Controller 方法)→ HandlerAdapter(适配参数 / 响应)→ Controller/Service/Dao(业务处理)→ ViewResolver(解析视图路径)→ 返回视图给用户。

补充:

  1. 关于 HandlerAdapter 的返回值处理

    • 你提到了HandlerAdapter负责参数转换(入参),这很对。

    • 其实它还负责返回值处理(出参)。Controller 方法执行完后返回的对象(比如String "success"User 对象),也是由HandlerAdapter调用相应的ReturnValueHandler来处理的。

    • 如果是字符串:它会把字符串传给ViewResolver

    • 如果是对象(@RestController):它会直接调用HttpMessageConverter转成 JSON 返回,跳过ViewResolver

  2. 关于 ViewResolver 的适用范围

    • 你的流程描述的是传统的服务端渲染(SSR)模式(如 JSP, Thymeleaf)。

    • 在现代前后端分离架构中(Vue/React + Spring Boot),Controller 通常标注@RestController或直接返回对象。此时,数据会被直接序列化为 JSON,不会经过ViewResolver,而是直接通过HttpMessageConverter写给前端。

    • 修正后的通用流程... -> Controller -> Service -> Dao -> (判断返回类型) -> [若是页面: ViewResolver] / [若是数据: MessageConverter] -> 响应给用户

springmvc 作用

spring mvc框架主要用在控制层,控制层做的事情有: 1、接收前端参数 2、调用业务逻辑 3、响应前端数据 而spring mvc做的事情就是简化接受前端参数,和简化响应前端数据

总结

1、本文介绍了前端返送请求,后端的处理路程:用户发送请求到DispatcherServlet(前端控制器),再通过HandlerMapping根据请求路径找到对应的Controller 方法,再通过HandlerAdapter进行原始参数格式到目标参数格式的转换,Controller → Service → Dao执行任务后再通过ViewResolver拼接出最终的视图路径,返回视图给用户。 这里略微需要两点补充: 关于 HandlerAdapter 的返回值处理和关于 ViewResolver 的适用范围 。

2、又介绍了SpringMVC的作用。

http://www.jsqmd.com/news/477410/

相关文章:

  • PUA OpenClaw:147只龙虾亲测有效!
  • 实习面经摘录(六)
  • /Users/yan/Downloads/boris_ImplicitDiffusion_1D_AD.jl
  • Compound 5| Compound的技术架构
  • AI提示词注入
  • Gemini PT-2D
  • 库早报|OPPO:无感折痕屏背后有两项3D打印技术;威拉里三期项目开工;五轴3D打印机TOP.E R1将亮相TCT亚洲展
  • 性价比高的铝方通哪个靠谱
  • 基于电压电流双闭环和模糊PID双环的VIENNA整流器仿真研究
  • 2026年,宁夏装修公司推荐哪家?业主实测top3家正规机构,装修小白不踩坑,附避坑指南! - 宁夏壹山网络
  • 电力弹簧主动配电网规划及优化运行调度策略探讨
  • 2026养发加盟项目怎么选?新手创业实用指南 - 品牌排行榜
  • 2026年七大闷声赚钱的AI技能
  • Deep Seek总结的APSW 和 SQLite 的关系
  • 部分视图 PartialView的详细介绍与经典用法
  • 一次性说清楚restTemplate如何使用1
  • 基于Zynq UltraScale+的FLASH固化问题记录
  • VSAR 软件 XCP/CCP 在线与离线测量操作指南
  • 矿用本安型全景雷达物位扫描仪的应用
  • AI重构小家电:恒享花有限公司与海尔在AWE以标准引领服务展示先行者的“新逻辑”与“慢功夫” - 博客湾
  • 基于 Anthropic SDK 实现 Token 统计与模型分流:原理、实践与代码示例
  • LangChain与LangGraph:让大模型开发更简单,小白也能轻松掌握(收藏必备)
  • IACheck助力食品接触材料检测报告审核:AI报告审核确保纸制品迁移量数据精准可靠
  • 马行为检测数据集470张VOC+YOLO格式
  • UniApp+Vue3集成DeepSeek AI聊天实战
  • 2026比表面积仪厂家推荐及核心技术解析 - 品牌排行榜
  • 收藏!985硕士斩获百度大模型岗,30k×16年薪近50万,小白/程序员必看
  • 求职招工招聘找活名片信息分类同城工地招工网站源码tp框架多端适配自定义样式模版切换.
  • 2026比表面积仪厂商技术实力盘点:聚焦精准分析解决方案 - 品牌排行榜
  • Openclaw小龙虾调研报告与实战