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




相关推荐
坐吃山猪18 小时前
SpringBoot01-配置文件
java·开发语言
我叫汪枫19 小时前
《Java餐厅的待客之道:BIO, NIO, AIO三种服务模式的进化》
java·开发语言·nio
yaoxtao19 小时前
java.nio.file.InvalidPathException异常
java·linux·ubuntu
Swift社区20 小时前
从 JDK 1.8 切换到 JDK 21 时遇到 NoProviderFoundException 该如何解决?
java·开发语言
DKPT21 小时前
JVM中如何调优新生代和老生代?
java·jvm·笔记·学习·spring
phltxy21 小时前
JVM——Java虚拟机学习
java·jvm·学习
seabirdssss1 天前
使用Spring Boot DevTools快速重启功能
java·spring boot·后端
喂完待续1 天前
【序列晋升】29 Spring Cloud Task 微服务架构下的轻量级任务调度框架
java·spring·spring cloud·云原生·架构·big data·序列晋升
benben0441 天前
ReAct模式解读
java·ai