该系列文章是本人在学习 Spring 的过程当中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合个人源码注释 Spring 源码分析 GitHub 地址 进行阅读html
Spring 版本:5.1.14.RELEASEgit
开始阅读这一系列文章以前,建议先查看《深刻了解 Spring IoC(面试题)》这一篇文章github
依赖工具面试
Gradle 6.4spring
Gitshell
JDK 1.8+express
IntelliJ IDEA 2020.1.1eclipse
笔者目前使用的是 Windows 系统,若是使用的是系统版本是 MAC OS 或者其余 IDEA 版本,可能会遇到相关问题,需自行 Google 处理ide
可参考 Spring 官方提供的 import-into-idea.md 或者 import-into-eclipse.md 进行导入项目工具
源码拉取
从 Spring 的 Git 仓库 Fork
项目到本身的 Git 仓库,方便咱们在阅读源码的过程当中,可添加相应的注释后提交代码,也能够直接拉取个人 Spring Framework 源码分析 GitHub 地址 阅读
因为 Spring 项目比较大,从仓库中拉取代码的时间会比较长,由于 Build 过程须要下载很是多的依赖,请耐心等待(也能够直接下载 ZIP 包,解压后执行下述命令再导入 IDEA 中)
打开 IDEA Terminal ,输入以下命令,预编译 spring-oxm
项目:
gradlew :spring-oxm:compileTestJava
在拉取项目的过程当中很大的可能会遇到各类问题,别慌,依次解决便可
spring-framework
项目下有不少子模块,核心模块:
这种面向模块开发方式,根据不一样的功能进行划分,根据需求引入对应的模块便可,对于开发人员比较友好
代码统计
经过 IDEA Statistic 插件,统计了spring-core
、spring-beans
和 spring-context
三个模块的代码量,以下图所示:code-statistic
能够看到总的 Java 代码行数在 100580 行,Spring 的注释行有点多,加上笔者添加的相关注释以及其余空行等,因此总的行数会相对比较多,感受 Java 代码量具多,不过咱们看核心内容就行了😄
本系列文章是对 Spring IoC 进行分析,主要查看 spring-core
、spring-beans
和 spring-context
三个模块。固然,这三个模块涉及到的东西也很是多,我不会对 Spring IoC 涉及到的全部内容进行分析,例如资源加载、国际化、数据绑定、类型转换等基础功能不会作过多的分析,了解便可。
本系列文章分享的内容主要围绕 Spring Bean 的生命周期和 Spring 应用上下文的生命周期展开,覆盖到 Spring IoC 大部份内容,相信这些文章会让你对 Spring 有一个更深的理解。