SpringMVC核心流程解析

SpringMVC核心流程解析

DispatcherServlet的继承关系

DispatcherServlet本质是一个servlet,既然是servlet,一个请求过来的时候,会首先执行servlet的service方法

请求流程分析

这里可以看到service方法已被父类FrameworkServlet重写,代理会执行到父类FrameworkServlet的service方法中

这里看到我们的常用请求GET、POST还是会交由FrameworkServlet的父类HTTPServlet .service方法来进行处理

FrameworkServlet重写了实际执行的doGet、doPost方法


获取HandlerChain(Controllrt+Method+拦截器)


handlerMappings是系统内置的处理url和handler关系的类,此处使用的是策略模式的思想。

获取HandlerAdapter

此处Handler会有多种类型(见下图,每一种实现方式都是一种不同的Handler),所以此处需要找到能正确处理的此handler的处理类,

例如:



实际执行handler方法

一路执行到这里,调用对象进行封装

请求参数解析
门面模式是典型的迪米特原则实现,最少知识原则!

handlerMappings的初始化过程


RequestMappingHandlerMapping会被加载到spring的容器,执行类的初始化操作

执行RequestMappingHandlerMapping的afterPropertiesSet方法




相关推荐
莫得感情 o22 分钟前
并发 14 · 收官:虚拟线程与结构化并发
java·并发
聚美智数34 分钟前
图片水印-图片剪裁-图片缩放API接口介绍
java·服务器·数据库
xierui1231231 小时前
AI Agent 隐私架构:本地化重点为什么是登录态与执行权限
java·人工智能·网络安全·架构
cfm_29141 小时前
Spring AI Tool 调用架构全解
java·人工智能·spring
sun༒2 小时前
Spring @Scheduled 定时任务详解:Cron表达式、执行顺序、优先级与并行调度
java·后端·spring
一次旅行2 小时前
DeepSeek‑V4‑Flash‑Vision‑Exp 小白入门实战|3种传图方式、完整可跑代码、避坑排障
java·前端·人工智能
野生技术架构师2 小时前
Spring Boot 实现数据脱敏:自定义注解 + Jackson 序列化器
java·spring boot·后端
AI人工智能+电脑小能手2 小时前
大白话说Java设计模式-28-模板方法模式(业务实战篇)
java·设计模式·模板方法模式·spring源码·订单系统·代码复用
奥莱维2 小时前
KNX酒店方案_KNX专用线与高端酒店技术逻辑
java·服务器·前端·数据库
工业一体机老司机2 小时前
Linux工业一体机自启动服务配置:systemd服务单元编写与开机优化实战
java·linux·服务器