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方法




相关推荐
gugucoding15 分钟前
2. 【Java】搭建Java开发环境
java·开发语言
wang090739 分钟前
自己动手写一个spring之MVC_3
java·spring·mvc
闲猫1 小时前
Spring AI / Models / Chat Models / Ollama
java·人工智能·spring
FREEDOM_X1 小时前
Linux 多线程编程——总结
java·linux·运维·ubuntu
tmlx3I0811 小时前
Tomcat的架构设计和启动过程详解
java·tomcat
weixin_422329311 小时前
AgentScope Java 项目入门 & Builder 深度解读
java·开发语言·人工智能
shepherd1262 小时前
一次把 Spring MVC 文件上传参数“查没了”的排查:multipart、Filter 与 request body 的连环坑
java·后端·spring·mvc
宠友信息2 小时前
Spring Boot与异步审核构建仿小红书源码内容发布全流程
java·数据库·spring boot·redis·mysql·oracle·uni-app
Listen·Rain2 小时前
Springboot整合RedisStack
java·spring boot·redis
花和满楼2 小时前
K8s 1.36 ImageVolume GA:OCI 镜像不再只能跑容器
java·容器·kubernetes