SpringMVC源码学习-SpringMVC的入口
大约 2 分钟
一、Spring MVC 整体架构
- 基于 MVC 设计模式
- 模型(Model):负责数据处理和业务逻辑
- 视图(View):负责数据展示
- 控制器(Controller):负责接收并处理用户请求
- 核心组件
- DispatcherServlet:前端控制器,接收并分发请求
- HandlerMapping:映射请求到具体处理器
- ViewResolver:解析视图
- 九大内置组件:包括
HandlerAdapter
、FlashMapManager
、LocaleResolver
等

二、Spring MVC 启动流程
- 启动入口
DispatcherServlet
是 Spring MVC 的核心入口- springMvc 是spring的扩展,那么springMvc之前必须要把spring容器启动起来。


- Servlet 生命周期
init()
:初始化阶段destroy()
:销毁阶段
- 启动过程
- ServletContext 初始化:加载配置文件
- 创建 DispatcherServlet:初始化前端控制器
- 初始化 WebApplicationContext:创建 MVC 容器
- 配置和刷新容器:调用
configureAndRefreshWebApplicationContext()

在spring启动流程中,监听器事件的理解


添加监听器相关代码的位置

实际的处理方法

onRefresh 九大组件初始化

初始化方法策略方法initStrategies

九大组件初始化完成。也意味着springMvc 初始化完成了
- 九大组件初始化
- 通过
initStrategies()
方法完成九大组件的初始化 - 包括
HandlerMapping
、ViewResolver
、ThemeResolver
等
- 通过
三、一个请求的断点打在哪?

从这开始,就是正经的springmvc环节了
三、请求处理流程
- 请求入口
- 从
DispatcherServlet
的doService()
方法开始
- 从
- 处理流程
- 分发请求:通过
HandlerMapping
找到合适处理器 - 处理请求:由
HandlerAdapter
调用 Controller - 视图渲染:通过
ViewResolver
找到视图
- 分发请求:通过