该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读

Spring 版本:5.2.4.RELEASE

因为 spring-mvc 项目,是 spring-framework子项目,所以需要拉取 spring-framework 整个工程,包含 Spring 所有的子项目,本系列文档只分析 MVC 相关模块

依赖工具

  • Gradle 6.4

  • Git

  • JDK 1.8+

  • IntelliJ IDEA 2020.1.1

笔者目前使用的是 Windows 系统,如果使用的是系统版本是 MAC OS 或者其他 IDEA 版本,可能会遇到相关问题,需自行 Google 处理

可参考 Spring 官方提供的 import-into-idea.md 或者 import-into-eclipse.md 进行导入项目

源码拉取

Spring 的 Git 仓库 Fork 项目到自己的 Git 仓库,方便我们在阅读源码的过程中,可添加相应的注释后提交代码,也可以直接拉取我的 Spring Framework 源码分析 GitHub 地址 阅读

由于 Spring 项目比较大,从仓库中拉取代码的时间会比较长,请耐心等待(也可以直接下载 ZIP 包,解压后执行下述命令再导入 IDEA 中)

打开 IDEA Terminal ,输入如下命令,预编译 spring-oxm 项目:

./gradlew :spring-oxm:compileTestJava

在拉取项目的过程中很大的可能会遇到各种问题,别慌,依次解决即可

spring-framework 项目下,一共有四个和 web 相关的项目,大体关系如下:

可以看到 spring-webmvc 不是一个单独的项目,他有依赖的 spring-web 父项目,也有两个 spring-webfluxspring-websocket 兄弟项目

关于本次的 Spring MVC 源码分析,仅分享 spring-webmvc 部分,如果对另外两个 webflux 和 websocket 项目感兴趣,可以自己 Google,因为笔者对它们还没太多的接触

代码统计

通过 IDEA Statistic 插件,统计了 spring-webmvc 项目的代码量,如下图所示:code-statistic

可以看到总的 Java 代码行数在 27763 行,Spring 的注释行有点多,加上笔者添加的相关注释以及其他空行等,所以总的行数会相对比较多,Java 代码量还是有点多

本系列文档不会分析spring-webmvc所有的代码,加上还需要分析 spring-web 中的相关代码,所以挑选其中较为核心的部分进行分析,相对来说没有那么复杂

关于 Spring 中的注释率达到了 40% 左右,是非常值得学习的

精尽Spring MVC源码分析 - 调式环境搭建的更多相关文章

  1. 精尽Spring MVC源码分析 - 文章导读

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  2. 精尽Spring MVC源码分析 - 一个请求的旅行过程

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  3. 精尽Spring MVC源码分析 - MultipartResolver 组件

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  4. 精尽Spring MVC源码分析 - HandlerMapping 组件(一)之 AbstractHandlerMapping

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  5. 精尽Spring MVC源码分析 - HandlerMapping 组件(二)之 HandlerInterceptor 拦截器

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  6. 精尽Spring MVC源码分析 - HandlerMapping 组件(三)之 AbstractHandlerMethodMapping

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  7. 精尽Spring MVC源码分析 - HandlerMapping 组件(四)之 AbstractUrlHandlerMapping

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  8. 精尽Spring MVC源码分析 - HandlerAdapter 组件(一)之 HandlerAdapter

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  9. 精尽Spring MVC源码分析 - HandlerAdapter 组件(二)之 ServletInvocableHandlerMethod

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

随机推荐

  1. python爬虫 selenium 抓取 今日头条(ajax异步加载)

    from selenium import webdriver from lxml import etree from pyquery import PyQuery as pq import time ...

  2. BRT快速公交系统的可视化实践

    前言 随着城市进程的加快,中国城市机动车的数量飞速增长,造成城市交通拥堵问题越来越严重,城市居民对于改善出行条件的需求尤其是公共交通的便捷性问题也越来越迫切.而BRT(快速公交系统)作为一种新型的客运 ...

  3. hectf2020部分简单题题解wp

    HECTF 我真是又菜又没时间肝题..又又又只水了波简单题... Reverse 1.Hello_Re file查一波 32bit,拖进IDA中 老规矩shift+F12 查看字符串: 跳转 F5查看 ...

  4. apache-commons和guava的工具类

    apache-commons工具类:https://www.iteye.com/blog/zhoualine-1770014 guava工具类:https://blog.csdn.net/Dream_ ...

  5. jQuery 第六章 实例方法 动画

    .show() .hide() .toggle() .fadeIn() .fadeout() .fadeToggle() .fadeTo() .slideDown() .slideUp() .slid ...

  6. Golang 实现 Redis(7): Redis 集群与一致性 Hash

    本文是使用 golang 实现 redis 系列的第七篇, 将介绍如何将单点的缓存服务器扩展为分布式缓存.godis 集群的源码在Github:Godis/cluster 单台服务器的CPU和内存等资 ...

  7. VueCli 4.0+ 版本安装插件与VueCLI 旧版本的不同

    通过VueCli 脚手架 4+ 版本创建的项目,在引入插件文件并配置时,是通过 import {Create* } ,旧版本是直接导入全部,在配置相应的文件时,重新new 一个:然后再通过Vue 进行 ...

  8. 【HAOI2015】树上操作

    (题面来自洛谷) 题目描述 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 :把某个节点 x 为根的子树 ...

  9. JQuery案例:左右选

    左右选 <head> <meta charset="UTF-8"> <title></title> <style> se ...

  10. 企业安全05-Fastjson <=1.2.47反序列化RCE漏洞(CNVD-2019-22238)

    Fastjson <=1.2.47反序列化RCE漏洞(CNVD-2019-22238) 一.漏洞描述 Fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 ...