对Spring MVC 的理解

发布时间:2026/6/28 3:37:40
对Spring MVC 的理解 对 Spring MVC 的理解一、核心定位Spring MVC 是 Spring 体系中专门处理Web 层的框架核心思想遵循MVC 设计模式Model模型封装数据通常指请求域中的对象View视图负责数据展示与页面渲染Controller控制器接收请求、协调处理、选择响应方式二、最大的价值前端控制器Spring MVC 引入了一个核心组件DispatcherServlet前端控制器本质是一个符合 Servlet 规范的 Servlet。所有请求先经过它由它统一调度后续流程。完整处理流程DispatcherServlet接收请求通过HandlerMapping定位到具体的 Controller 方法执行拦截器preHandle如果有HandlerAdapter调用对应方法方法返回ModelAndView或直接写回ResponseBody数据若返回视图ViewResolver解析为具体视图技术并渲染执行拦截器postHandle、afterCompletion得益于此开发者只需在方法上加RequestMapping注解就能完成 URL 映射底层映射关系在启动时已被扫描并存储好。三、MVC 三层 vs. 应用分层需要区分两个概念Spring MVC 内部的 MVC 三层以及Spring 应用整体的分层架构。3.1 Spring MVC 内部的 MVC角色职责Model承载数据如请求域对象View视图解析与页面渲染Controller处理请求参数、调用业务逻辑、选择视图或返回数据这是 Spring MVC 框架本身的职责边界仅限 Web 层。3.2 Spring 应用整体的分层常见实践在 Spring 体系中MVC 的三层被进一步细化形成经典的四层架构Controller 层Web 层接收 HTTP 请求参数校验、数据绑定调用 Service 层处理业务返回视图或 JSON 数据Service 层业务逻辑层处理核心业务逻辑事务控制通常加在这一层协调多个 DAO 操作保证业务原子性DAO 层数据访问层与数据库交互执行 SQL封装增删改查操作View 层视图层传统模式使用 JSP、Thymeleaf 等进行服务端渲染前后端分离模式View 前移到前端框架Vue/React后端通过RestController直接返回 JSON不再走ViewResolver渲染流程View 的职责由前端承担四、前后端分离带来的变化传统 MVC后端负责组装数据、调用视图渲染页面最终返回完整 HTML前后端分离Spring MVC 的 View 层概念被弱化Controller 通过HttpMessageConverter将对象序列化为 JSON 直接写入 Response Body不经过视图解析本质理解View 层职责移交前端Spring MVC 专注于提供 RESTful API扮演“数据提供者”角色五、总结Spring MVC 是基于 Servlet 的 Web 框架核心是前端控制器DispatcherServlet框架内部遵循 Model-View-Controller 三分职责限定在 Web 层Service、DAO 属于 Spring 整体应用分层不应直接归为“Spring MVC 的分层”事务控制在 Service 层是推荐实践前后端分离场景下View 概念前移Spring MVC 更侧重 API 化数据返回