01.Spring源码深度解析之IDEA源码阅读环境搭建

前言

相信大部分人在面试过程中都会被问到是否阅读过Spring源码 Spring底层如何实现 Spring使用了哪些设计模式等问题,通常遇到这种问题我是直接选择死亡。因为开始我觉的花时间去研究一门框架不如多学习几个开源框架性价比来的高,可能花几天时间你能用一个新框架撸码,但是花几天时间研究Spring真的研究不出什么道来,不过渐渐的我发现程序员如果想自身的核心竞争力除了增加知识的广度外更重要的是能在某个方面有个深度。我想百分90的程序员都有在用Spring框架但是可能只有百分10不到的程序员研究过Spring框架,它是个十分成熟的开源框架,有着各路武林高手多年积淀下来的精华,为了应付面试也好提高自身编程思想也好我认为研究Spring源码还是很有必要的,因为阅读源码等同于你获得了一次和大师学习的机会,站在巨人的肩膀上才会看的更远

阅读Spring源码是一万次的心跳呼吸也是一万次的低头叹息,感觉还是很吃力特对对我这种没有源码阅读经验的菜鸡而言,但是每次坚持下来都会有意外的收获,读书百遍其义自见吧。在源码阅读过程中主要参考了郝佳的Spring源码深度解析,从代码角度进行剖析由浅入深,然后看源码过程中顺带看了些设计模式的内容,主要参考了程杰的大话设计模式,再然后还参考了数不清的技术博客,我们不生产水我们只是大自然的搬运工,我只是对这些大佬的见解进行汇总,如有侵权请及时联系。然后顺带安利个比较实用的UML图软件Visual Paradigm,页面简洁功能强大,谁用谁知道

然后再分享个看源码的经验吧,因为Spring源码层级结构较深,很容易就找不到自己想要定位的类,巧用IDEA的书签功能可以很好的解决该问题,IDEA的类图谱功能可以帮助我们理清类之间的依赖关系,Find Usages可以帮我们理清类之间的调用关系。再然后来个免责声明吧,本人不是高级软件开发工程师也不是什么架构师,只是一个刚刚学Java的菜鸡,菜的抠脚的那种,但是该博客是用心码出来的,所以如果你在看该博客有任何被坑的地方还请您多多担待,最后希望各位大佬不吝赐教不胜感激…

博客源码地址:https://github.com/RobertoHuang/spring-framework.git

Spring整体架构

Spring整体架构
网上找了一张Spring的架构框图,可以看出模块构成关系,了解即可不必过于纠结

Spring源码阅读环境构建

下载Spring源码

现在大型开源项目都由Github托管了,Spring也不例外。所以我们可以直接在Github上搜索spring-framework找到Spring项目下载ZIP包,或者直接通过以下命令检出Spring源码,如果对GIT还不了解的同学可以百度搜索廖雪峰GIT教程,相信很快就能上手

git clone https://github.com/spring-projects/spring-framework.git

JDK版本

最新版的Spring源码编译要求jdk1.8+版本,至于JDK环境变量配置在此就不赘述了

Gradle环境

配置:
1.创建系统环境变量:GRADLE_HOME 指向Gradle安装目录
2.配置path:新增%GRADLE_HOME%\bin;
3.配置完成后打开CMD输入gradle -v看是否成功

IntelliJ IDEA版本

阅读Spring源码对IntelliJ IDEA版本其实是没有要求的,但是不得不提一下的是如果你的IntelliJ IDEA版本是2017.1及以下的版本的话,那Gradle的版本用3.5的就可以了,用新版的Gradle可能会出问题

Spring源码编译并导入IDEA

在下载下来的Spring源码的根目录下有个import-into-idea.md的文件,里面介绍了如何使用将Spring源码导入IDEA,并且讲述了在此过程中应该注意的一些问题,大致步骤如下

1.注释根目录settings.gradle文件下的jcenter()以及spring-aspects模块

pluginManagement {
    repositories {
        // jcenter()
        gradlePluginPortal()
    }
}

// include "spring-aspects"

2.注释spring-oxm下spring-oxm.gradle文件的jibx模块

// jibx(verbose: true, load: true, binding: bindingXml) {
    // classpathset(dir: sourceSets.test.java.outputDir) {
        // include(name: "**/jibx/**/*")
    // }
// }

3.预编译spring-oxm模块,使用如下命令(此过程中可能由于网络问题失败 多重试几次)

gradle :spring-oxm:compileTestJava

4.导入项目到IDEA中,选择使用Gradle构建并配置Gradle环境
使用Gradle构建

配置Gradle环境

5.等待构建完成即可 至此Spring源码阅读环境已搭建完毕

转载请注明作者及出处,原文链接为:作者黄太洪 标题01.Spring源码深度解析之IDEA源码阅读环境搭建

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值