• Spring 源码编译之极致简单


    Spring源码编译

    如何省时省力完成Spring源码编译,How do,怎么做。请继续…

    Spring的源码编译对于接触Spring不久的开发者可能是个小的挑战,妨碍了我们学习Spring特征的兴趣。而当下的目标是学习Spring而不是拘泥于环境配置,能不能跳过这一步直接学习呢?等学习到一定程度了自然就会了源码的编译。基于这个原因我在gitee上创建了一个简单、开箱即用的spring源码项目,直接当做普通的项目下载导入IDEA就可以运行。

    项目介绍

    项目地址:https://gitee.com/firefish985/spring-framework-deepanalysis

    项目介绍:spring-framework-deepanalysis 是从spring官方的spring framework中clone来的项目,初衷是用于了解spring特征之用,后来经过一段时间给源码补充了很多注释也基于目前一些开发者不重视源码的学习,遂将项目开源出来供交流学习。该项目由如下鲜明特点:

    1、可以直接导入idea跑的官方项目

    2、从 spring framework 官方clone的,只做增加不做修改

    3、添加了多个自定义源码特征学习模块,如 spring-source-code-deep-analysis

    前置条件

    • 安装了jdk环境

    可以通过java -version来检测,如果没有安装请自行安装

    • 安装了git环境

    • 安装了IDEA开发工具

    • 安装gradle(可选)

    Spring源码时基于gradle编译的,不同于我们常见项目用的maven。因为源码中配置了gradle-wrapper,在项目导入IDEA的时候回去下载,所以目前暂时可以不用安装

    编译源码

    1、下载源码zip包或者clone项目
    git clone https://gitee.com/firefish985/spring-framework-deepanalysis.git
    
    • 1
    2、切换到源码的5.1x分支

    这里主要研究的是Spring5,作者的所有注释都是在5.1分支

    如果需要学习别的分支请对应切换

    # 进入项目目录(具体就是你clone的目录)
    cd /Users/apple/Documents/Work/Development/github/spring-framework-personal
    # 查看远程所有的分支
    git branch -a
    # 查看当前所在的分支
    git branch --list
    # 切换到5.1的目标分支
    git checkout 5.1.x
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3、用idea导入项目

    导入过程中会去阿里云下载非常多依赖的jar包、gradle安装等文件,耗费时间很多,请泡一杯咖啡、打开中国好声音、打开网易云音乐听听歌。

    导入结束后如果控制台没有报错,gradle窗口能显示项目,那么恭喜你,畅途无阻一切顺利。如下图:

    如果出现了错误,也不要担心,相比从官方编译和按我这种方式编译,我这是最小成本,您可以自行解决一下或在gitee该项目下评论与我联系。

    4、验证导入的项目

    作者新建了一个自定义的模块:spring-source-code-deep-analysis,用来测试和debug官方的项目。如您可以选择BeanFactoryTest运行一个测试

    不出意外会得到下面的运行成功的图

    至此完成了全部的项目编译,请畅游Spring源码特征

    5、致谢

    源码注释 或 gitee提交记录或许对你有些用处

    • 作者在该项目源码,写了大量的详细注释且在持续更新,几乎覆盖了Spring常用的功能。

    • 在gitee提交记录中,对Spring的核心功能进行了分门别类的提交

    • 各位觉得如果对你有所帮助,请不要吝啬你的鼓励,给作者一个star

    • 欢迎各位开发道友提issue、交流

    5、彩蛋

    如果你也想添加自己的模块,可以参考我添加spring-source-code-deep-analysis模块同样的方式。我的添加方式我放在了gitee的提交记录中,如下:

    如果你想使用spring官方的源码编译,参考:https://blog.csdn.net/Dcwjh/article/details/104471560

    传送门:保姆式Spring5源码解析

    欢迎与作者一起交流技术和工作生活

    联系作者

  • 相关阅读:
    从入门到进阶!当下火爆的大数据技术及算法怎么还能不知道 一起来学习互联网巨头的大数据架构实践!
    java计算机毕业设计ssm+jsp计算机视频学习网站
    wind量化交易接口怎么用?
    将STM32 Flash的一部分虚拟为大容量存储设备 USB_Device
    【蓝桥杯软件赛 零基础备赛20周】第4周——简单模拟1
    PAT 1137 Final Grading
    鲁大师电动车智能化测评报告第二十三期:实测续航95km,九号Q90兼顾个性与实用
    python字符串转list,多维度,支持float,并保持原数据结构
    JAVA基础 - java.io.IOException:Parent directory of file does not exist
    2023-简单点-树莓派安装ncnn框架
  • 原文地址:https://blog.csdn.net/yuchangyuan5237/article/details/126794668