死磕Spring之IoC篇 - 调试环境的搭建

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

Spring 版本:5.1.14.RELEASE

开始阅读这一系列文章之前,建议先查看《深入了解 Spring IoC(面试题)》这一篇文章

该系列其他文章请查看:《死磕 Spring 之 IoC 篇 - 文章导读》

依赖工具

  • 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 项目比较大,从仓库中拉取代码的时间会比较长,因为 Build 过程需要下载非常多的依赖,请耐心等待(也可以直接下载 ZIP 包,解压后执行下述命令再导入 IDEA 中)

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

gradlew :spring-oxm:compileTestJava

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

spring-framework 项目下有很多子模块,核心模块:

  • spring-core:Spring 基础 API 模块,如资源管理、泛型处理
  • spring-beans:Spring Bean 相关,如依赖查找、依赖注入
  • spring-context:事件驱动、注解驱动、模块驱动等
  • spring-aop:Spring AOP 处理,如动态代理、AOP 字节码提升
  • spring-expression:Sping 表达式语言模块

这种面向模块开发方式,根据不同的功能进行划分,根据需求引入对应的模块即可,对于开发人员比较友好

代码统计

通过 IDEA Statistic 插件,统计了spring-corespring-beansspring-context 三个模块的代码量,如下图所示:code-statistic

可以看到总的 Java 代码行数在 100580 行,Spring 的注释行有点多,加上笔者添加的相关注释以及其他空行等,所以总的行数会相对比较多,感觉 Java 代码量具多,不过我们看核心内容就好了😄


本系列文章是对 Spring IoC 进行分析,主要查看 spring-corespring-beansspring-context 三个模块。当然,这三个模块涉及到的东西也非常多,我不会对 Spring IoC 涉及到的所有内容进行分析,例如资源加载、国际化、数据绑定、类型转换等基础功能不会做过多的分析,了解即可。

本系列文章分享的内容主要围绕 Spring Bean 的生命周期和 Spring 应用上下文的生命周期展开,覆盖到 Spring IoC 大部分内容,相信这些文章会让你对 Spring 有一个更深的理解。

posted @ 2021-02-22 08:38  月圆吖  阅读(1482)  评论(3编辑  收藏  举报