当前位置: 首页 > article >正文

Spring MVC 原理与源码

Spring MVC 整体代码量有 5w+ 行,通过本专栏,可以快速的研读核心部分的代码,节省你的时间。

DispatcherServlet 的流程处理如下图:

但是随着前后端分离,后端大多提供 Restful API ,里面的 ViewResolver 和 View 的流程,已经不再被需要。为什么呢?源码中,我们将得到解答。

UML 序列图如下:

虽然整体流程不复杂,但是通过阅读 Spring MVC 的源码,我们会发现,Spring MVC 优雅的提供了各种拓展点,例如 HttpMessageConvert、ExceptionHandler 等等。

1.2 文章目录

  • 惊喜
    • 《精尽 Spring MVC 面试题》
    • 《精尽 Spring MVC 学习指南》
  • 调试
    • 《精尽 Spring MVC 源码分析 —— 调试环境搭建》
  • 容器的初始化
    • 《精尽 Spring MVC 源码解析 —— 容器的初始化(一)之 Root WebApplicationContext 容器》
    • 《精尽 Spring MVC 源码解析 —— 容器的初始化(二)之 Servlet WebApplicationContext 容器》
    • 《精尽 Spring MVC 源码解析 —— 容器的初始化(三)之 Servlet 3.0 集成》
    • 《精尽 Spring MVC 源码解析 —— 容器的初始化(四)之 Spring Boot 集成》
  • 整体一览
    • 《精尽 Spring MVC 源码分析 —— 组件一览》
    • 《精尽 Spring MVC 源码解析 —— 请求处理一览》
  • 组件详解
    • 《精尽 Spring MVC 源码解析 —— HandlerMapping 组件(一)之 AbstractHandlerMapping》
    • 《精尽 Spring MVC 源码解析 —— HandlerMapping 组件(二)之 HandlerInterceptor》
    • 《精尽 Spring MVC 源码解析 —— HandlerMapping 组件(三)之 AbstractHandlerMethodMapping》
    • 《精尽 Spring MVC 源码解析 —— HandlerMapping 组件(四)之 AbstractUrlHandlerMapping》
    • 《精尽 Spring MVC 源码解析 —— HandlerAdapter 组件(一)之 HandlerAdapter》
    • 《精尽 Spring MVC 源码解析 —— HandlerAdapter 组件(二)之 ServletInvocableHandlerMethod》
    • 《精尽 Spring MVC 源码解析 —— HandlerAdapter 组件(三)之 HandlerMethodArgumentResolver》
    • 《精尽 Spring MVC 源码解析 —— HandlerAdapter 组件(四)之 HandlerMethodReturnValueHandler》
    • 《精尽 Spring MVC 源码解析 —— HandlerAdapter 组件(五)之 HttpMessageConverter》
    • 《精尽 Spring MVC 源码解析 —— HandlerExceptionResolver》
    • 《精尽 Spring MVC 源码解析 —— RequestToViewNameTranslator》
    • 《精尽 Spring MVC 源码解析 —— LocaleResolver》
    • 《精尽 Spring MVC 源码解析 —— ThemeResolver》
    • 《精尽 Spring MVC 源码解析 —— ViewResolver》
    • 《精尽 Spring MVC 源码解析 —— MultipartResolver》
    • 《精尽 Spring MVC 源码解析 —— FlashMapManager》

2. 【zhisheng】Spring MVC 源码解析

  • 作者 :zhisheng
  • 博客 :http://www.54tianzhisheng.cn
  • 目录 :
    • 《看透 Spring MVC 源代码分析与实践 —— 网站基础知识》
    • 《看透 Spring MVC 源代码分析与实践 —— 俯视 Spring MVC》
    • 《看透 Spring MVC 源代码分析与实践 —— Spring MVC 组件分析》

3. 【相见欢】Spring MVC 源码解析

  • 作者 :相见欢
  • 博客 :https://my.oschina.net/lichhao/blog?catalog=285356
  • 目录 :
    • 《Spring MVC 源码剖析(一) —— 从抽象和接口说起》
    • 《Spring MVC 源码剖析(二) —— DispatcherServlet 的前世今生》
    • 《Spring MVC 源码剖析(三) —— DispatcherServlet 的初始化流程》
    • 《Spring MVC 源码剖析(四) —— DispatcherServlet 请求转发的实现》
    • 《Spring MVC 源码剖析(五) —— 消息转换器 HttpMessageConverter》

4. 【carl.zhao】Spring MVC 源码解析

  • 作者 :carl.zhao
  • 博客 :http://blog.csdn.net/u012410733/
  • 目录 :
    • 《【carl.zhao】Spring MVC @RequestMapping》
    • 《【carl.zhao】Spring MVC DispatcherServlet》
    • 《【carl.zhao】Spring MVC DataBinder》
    • 《【carl.zhao】Spring MVC 与 Servlet》
    • 《【carl.zhao】Spring MVC 之调用复用》

http://www.kler.cn/news/365408.html

相关文章:

  • 基于springboot企业微信SCRM管理系统源码带本地搭建教程
  • 【D3.js in Action 3 精译_037】4.1 DIY 实战:D3 源码分析之——d3.timeFormat() 函数
  • RAG技术
  • git入门操作(2)
  • 【基于WireGuard搭建公司服务器虚拟专用通道服务】
  • u盘装win10系统提示“windows无法安装到这个磁盘,选中的磁盘采用GPT分区形式”解决方法
  • 六个方向比较分析:ChatGPT-o1-preview与 ChatGPT-4o在论文写作辅助上的差异
  • 富格林:察觉欺诈有效追损措施
  • 解决运行jar错误: 缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序
  • webRTC搭建:STUN 和 TURN 服务器 链接google的有点慢,是不是可以自己搭建
  • 当遇到 502 错误(Bad Gateway)怎么办
  • 【Python】实战:猜数游戏
  • 如何在 Ubuntu 18.04 上使用 Let‘s Encrypt 保护 Apache
  • 挖矿病毒的处理
  • 用STM32硬件思维学JAVA--23种设计模式
  • 分布式解决方案---分布式ID
  • 自动化测试工具Appium介绍
  • Java基础选择题
  • win10 opencv gpu c++版本编译教程
  • HarmonyOS 5.0应用开发——Navigation实现页面路由
  • 全方面熟悉Maven项目管理工具(一)认识Maven、Maven如何安装?
  • 使用Angular构建动态Web应用
  • 怎么看AI大模型(LLM)、智能体(Agent)、知识库、向量数据库、知识图谱,RAG,AGI 的不同形态?
  • 使用WPF写一个简单的开关控件
  • 小程序无法获取头像昵称以及手机号码的深度剖析与解决方案
  • 【Fargo】15: 使用mediasoup的UdpSocket发送数据