首页 > 项目 > 当前页面

Spring Boot 一个请求的执行流程

2026-06-24 NEW个对象

📌 Spring Boot 一个请求的执行流程

Spring Boot 一个 HTTP 请求从客户端发送到最终返回响应,会依次经过 Tomcat、Filter、DispatcherServlet、HandlerMapping、Interceptor、Controller、Service、DAO、数据库等多个组件,最终再经过视图或 JSON 序列化返回客户端。

🚀 请求执行流程

浏览器 / APP │ ▼ Embedded Tomcat 接收请求 │ ▼ Filter(过滤器) │ ▼ DispatcherServlet(SpringMVC核心) │ ▼ HandlerMapping(查找Controller) │ ▼ Interceptor.preHandle() │ ▼ HandlerAdapter │ ▼ Controller │ ▼ Service(业务层) │ ▼ Mapper / Repository │ ▼ MyBatis / JPA │ ▼ MySQL │ ▼ 返回数据 │ ▼ Interceptor.postHandle() │ ▼ HttpMessageConverter(JSON转换) │ ▼ Interceptor.afterCompletion() │ ▼ Filter 返回响应 │ ▼ 浏览器收到响应

🎯 各组件作用

组件 作用
Tomcat 接收 HTTP 请求并交给 SpringMVC
Filter 过滤请求,如日志、编码、权限、TraceId
DispatcherServlet SpringMVC 前端控制器,负责统一调度
HandlerMapping 根据 URL 找到对应 Controller
Interceptor 登录校验、权限、日志等处理
Controller 接收请求参数,调用业务层
Service 处理业务逻辑
Mapper 访问数据库
HttpMessageConverter 将对象转换为 JSON/XML 返回客户端

💡 Interceptor 执行顺序

preHandle() ↓ Controller ↓ postHandle() ↓ 视图渲染 / JSON转换 ↓ afterCompletion()

⚠️ Filter 与 Interceptor 区别

  • Filter 属于 Servlet 规范,在进入 SpringMVC 之前执行。
  • Interceptor 属于 SpringMVC,只能拦截 Controller 请求。
  • Filter 更适合做字符编码、跨域、TraceId、日志等通用处理。
  • Interceptor 更适合做登录校验、权限控制、接口鉴权等业务相关逻辑。
✅ 面试总结

Spring Boot 一个请求的核心流程可以概括为:

Tomcat → Filter → DispatcherServlet → HandlerMapping → Interceptor → Controller → Service → Mapper → MySQL → HttpMessageConverter → 返回客户端。

其中 DispatcherServlet 是 SpringMVC 的核心调度器,负责请求分发;Filter 负责 Servlet 层通用处理;Interceptor 负责 SpringMVC 层业务拦截;HttpMessageConverter 负责对象与 JSON 的相互转换,是整个请求链路的关键组件。

相关文章

NEW个对象 NEW个对象
JAVA是世界上最好的语言