SpingMVC学习小记

📅 2026/6/23 18:59:55
SpingMVC学习小记
前言SpringMVC是Java后端面试必考高频知识点不管是SpringBoot零基础开发还是八股文面试五大组件、执行流程、拦截器三大考点几乎必问。本文摒弃晦涩源码废话用大白话流程链路拆解零基础能看懂面试直接背诵全文适配当下前后端分离开发场景剔除老旧JSP冗余知识点。一、什么是SpringMVC面试标准作答SpringMVC 是Spring 框架专属Web层模块基于经典MVC设计模式开发全权接管项目中HTTP请求接收、分发、业务处理、结果响应全流程。日常开发所有SpringMVC常用功能我们日常CRUD开发用到的功能全部归属SpringMVC管控接口注解RestController、RequestMapping、GetMapping等路由注解参数能力URL参数、JSON参数接收、类型自动转换、参数校验响应能力后端实体类自动序列化返回JSON数据拓展能力自定义拦截器、全局跨域、文件上传、请求封装SpringBoot适配要点SpringBoot项目默认自动集成SpringMVC零xml配置、开箱即用开发者无需手动整合依赖、配置核心调度器。核心定位总结核心链路前端HTTP请求 → 后端接口业务处理 → 格式化结果响应前端二、SpringMVC 五大核心组件面试重中之重SpringMVC整套请求流转完全依靠5大组件分工协作、配合完成牢记每个组件核心职责大白话别称面试秒答。1. DispatcherServlet 前端控制器别称总调度、大管家、中枢核心职责项目所有HTTP请求统一入口拦截全部浏览器请求负责调度、统筹其余四大组件把控整条请求完整生命周期SpringMVC最核心组件。2. HandlerMapping 处理器映射器别称找路员、接口匹配器职责根据请求URL地址、请求方式GET/POST/PUT/DELETE匹配项目中对应的Controller接口方法最终返回处理器执行链目标Handler 拦截器链。3. HandlerAdapter 处理器适配器别称执行人、适配工具职责承接映射器匹配好的Controller方法完成接口参数绑定、数据类型转换、参数合法性校验通过反射调用业务接口适配各类格式请求执行。4. ViewResolver 视图解析器别称页面渲染器重点考点当下前后端分离项目基本废弃不用职责老旧JSP单体项目专用根据视图名称匹配后端页面资源现在项目统一返回JSON数据视图解析器直接失效无需配置。5. Handler 处理器大白话解释开发者手写的Controller接口方法职责执行业务逻辑、调用Service业务层、联动Mapper操作数据库真正完成业务数据处理。三、SpringMVC 完整执行流程面试必背流程极简总链路背诵版浏览器HTTP请求 → Tomcat容器 → DispatcherServlet → HandlerMapping → HandlerAdapter → Controller → Service → Mapper → 逐层结果返回 → 框架自动JSON序列化 → 响应前端分步超详细拆解可直接面试口述第1步发起请求前端浏览器、Axios、Postman等客户端发起HTTP请求例如/user/login请求被服务端Tomcat容器接收。第2步Tomcat转交请求Tomcat只做请求接收不处理任何业务逻辑直接将全部请求转交SpringMVC核心调度DispatcherServlet。第3步匹配接口路由DispatcherServlet调用HandlerMapping根据请求地址、请求方式匹配对应Controller接口匹配成功后返回处理器执行链接口方法拦截器。第4步获取执行适配器前端控制器获取适配当前接口的HandlerAdapter交由适配器全权执行接口逻辑。第5步参数自动处理HandlerAdapter自动完成全套参数操作解析Path参数、Form参数、Body JSON参数完成字符串、基本类型、实体类自动类型转换执行Valid参数校验、异常封装封装参数赋值给Controller方法入参第6步执行业务代码适配器通过反射执行Controller接口方法Controller调用Service层业务代码Service调用Mapper层操作数据库完成完整业务读写。第7步接口返回业务数据业务执行完毕Controller统一返回自定义Result、分页实体、字符串、POJO实体等数据。第8步自动JSON序列化前后端分离架构下SpringMVC内置Jackson工具自动将后端Java对象转为JSON字符串开发者无需手动转换。第9步响应前端请求结束DispatcherServlet封装响应报文通过HttpServletResponse输出流将JSON数据返回客户端单次HTTP请求生命周期完结。四、SpringMVC拦截器执行时机业务场景拦截器是SpringMVC原生功能区别于Filter过滤器仅管控Controller接口请求面试常考执行顺序、使用场景、和过滤器区别。完整执行顺序从上至下执行请求进入DispatcherServletHandlerMapping完成接口路由匹配preHandle() 前置拦截返回true放行请求返回false直接截断请求、终止流程执行目标Controller接口业务方法postHandle() 后置处理Controller执行完毕视图渲染之前执行afterCompletion() 最终回调请求全部处理完毕、响应结束后最终执行多用于资源释放企业常用业务场景JWT、Token登录身份校验拦截接口权限校验、角色权限管控全局请求日志、响应日志打印接口限流、非法请求拦截统一全局跨域配置、请求头封装