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




相关推荐
郝学胜-神的一滴2 分钟前
深度拆解Python迭代协议:从底层原理到核心实践,解锁异步编程的基石
java·网络·python
码云数智-大飞2 分钟前
前端性能优化实战:如何大幅减少应用加载时间?
java
Memory_荒年2 分钟前
SpringBoot 3.x 新特性:让代码自己“996”,你准时下班!
java·后端·spring
后端AI实验室10 分钟前
等保三级整改,敏感数据加密,数十个系统——3个人用Cursor一周搞定了
java·ai
qq_3340602112 分钟前
spring_springmvc_mybatis权限控制+boostrap实现UI
java·spring·mybatis
sunwenjian88617 分钟前
Spring Boot 整合 Druid 并开启监控
java·spring boot·后端
1104.北光c°23 分钟前
基于Canal + Kafka的高可用关注系统:一主多从关系链
java·开发语言·笔记·分布式·程序人生·kafka·一主多从
Mem0rin24 分钟前
[Java]异常及其处理
java·开发语言
skiy25 分钟前
Spring boot创建时常用的依赖
java·spring boot·后端
早起的年轻人27 分钟前
告别Git仓库臃肿:一招解决Maven target目录误提交问题
java·git·maven