跳至主要內容

SpringMVC源码学习-SpringMVC的入口

科哒大约 2 分钟

一、Spring MVC 整体架构

  1. 基于 MVC 设计模式
    • 模型(Model):负责数据处理和业务逻辑
    • 视图(View):负责数据展示
    • 控制器(Controller):负责接收并处理用户请求
  2. 核心组件
    • DispatcherServlet:前端控制器,接收并分发请求
    • HandlerMapping:映射请求到具体处理器
    • ViewResolver:解析视图
    • 九大内置组件:包括 HandlerAdapterFlashMapManagerLocaleResolver

二、Spring MVC 启动流程

  1. 启动入口
    • DispatcherServlet 是 Spring MVC 的核心入口
    • springMvc 是spring的扩展,那么springMvc之前必须要把spring容器启动起来。
  1. Servlet 生命周期
    • init():初始化阶段
    • destroy():销毁阶段
  2. 启动过程
    • ServletContext 初始化:加载配置文件
    • 创建 DispatcherServlet:初始化前端控制器
    • 初始化 WebApplicationContext:创建 MVC 容器
    • 配置和刷新容器:调用 configureAndRefreshWebApplicationContext()

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

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

实际的处理方法

onRefresh 九大组件初始化

初始化方法策略方法initStrategies

九大组件初始化完成。也意味着springMvc 初始化完成了

  1. 九大组件初始化
    • 通过 initStrategies() 方法完成九大组件的初始化
    • 包括 HandlerMappingViewResolverThemeResolver

三、一个请求的断点打在哪?

从这开始,就是正经的springmvc环节了


三、请求处理流程

  1. 请求入口
    • DispatcherServletdoService() 方法开始
  2. 处理流程
    • 分发请求:通过 HandlerMapping 找到合适处理器
    • 处理请求:由 HandlerAdapter 调用 Controller
    • 视图渲染:通过 ViewResolver 找到视图