下载Spring4.1.x源码并用IntelliJ IDEA打开

简介: 为了定位问题或者深入学习Spring知识体系,需要在本地IDE阅读Spring源码,本篇给出了基本操作步骤

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码): https://github.com/zq2599/blog_demos

本篇概览

  • 在学习Spring的时想了解一些重要接口和类的源码,本文讲述了Spring工程的下载和在IDEA上打开的操作,共需要以下几步:
  1. 安装JDK;
  2. 安装gradle;
  3. 下载spring源码;
  4. 切换到4.1.x分支;
  5. 用IntelliJ IDEA导入;
  • 接下来准备开始吧;

版本参考

  • 以下列出我本次实战用到的各个工具的版本,以供您参考:
  1. 操作系统:win10
  2. Git Bash版本2.15,并且已配置好账号信息,可以正常执行git命令;
  3. JDK:1.8.0_111
  4. gradle:2.14.1(不要用4.x版本,会提示找不到插件"sonar-runner")
  5. IDEA版本如下图:

这里写图片描述

安装JDK

  • 这个就不多说了,记得要配置环境变量JAVA_HOME;

安装gradle

  1. 在此下载:http://services.gradle.org/distributions/
  2. 下载gradle-2.14.1-bin.zip文件并解压;
  3. 设置环境变量GRADLE_HOME,值是解压后的gradle-2.14.1文件夹的目录;
  4. 将gradle-2.14.1/bin的路径添加到PATH中;
  5. 在控制台执行gradle -version可以看到以下信息,表明安装和设置成功:
C:\Users\12167>gradle -version

------------------------------------------------------------
Gradle 2.14.1
------------------------------------------------------------

Build time:   2016-07-18 06:38:37 UTC
Revision:     d9e2113d9fb05a5caabba61798bdb8dfdca83719

Groovy:       2.4.4
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_111 (Oracle Corporation 25.111-b14)
OS:           Windows 10 10.0 amd64

下载spring源码

  1. 登录GitHub;
  2. spring项目的地址是:https://github.com/spring-projects/spring-framework,点击右上角的Fork按钮,如下图:

这里写图片描述

  1. Fork成功后网页会自动跳转到新的项目主页,如下图,点击红框1和红框2,复制新项目的git地址,例如我这里的地址是:https://github.com/zq2599/spring-framework.git

这里写图片描述

  1. 打开命令行终端,执行以下命令开始下载:
git clone https://github.com/zq2599/spring-framework.git
  1. 在spring-framework文件夹下,执行git branch -a查看分支列表,如下:
12167@zhaoqinwin10 MINGW64 /d/study/spring-framework (master)
$ git branch -a
  4.0.x
  4.1.x
* master
  remotes/origin/3.0.x
  remotes/origin/3.1.x
  remotes/origin/3.2.x
  remotes/origin/4.0.x
  remotes/origin/4.1.x
  remotes/origin/HEAD -> origin/master
  remotes/origin/beanbuilder
  remotes/origin/conversation
  remotes/origin/gh-pages
  remotes/origin/master
  1. 执行命令 git checkout 4.1.x切换到4.1.x分支;

用IntelliJ IDEA导入工程

  • 打开IntelliJ,点击Import Porject按钮,如下图红框:

这里写图片描述

  • 选中spring-framework文件夹;
  • 选择”Import project from external model“,再选中"Gradle",如下图,点击"Next"按钮:

这里写图片描述

  • 接下来的页面是一些配置信息,选择如下图,注意要确保Grandle和Jdk的设置是有效的:

这里写图片描述

  • 等待IDEA导入和构建完成,这里比较耗时,因为要下载一些依赖库,如下图:

这里写图片描述

看源码和类图

  • 导入完成后,就可以愉快的阅读源码了,遇到重要的类和接口可以用IDEA自带的类图工具查看类图和继承关系,操作方法是在源码上右键选择"Diagrams -> Show Diagram",更详细的操作请参考《用IntelliJ IDEA看Java类图》

几个特别说明

  1. 源码文件夹下的import-into-idea.md文件中,说要先执行命令./gradlew cleanIdea :spring-oxm:compileTestJava再用IDEA导入工程,经过实测不需要执行此命令,就按前面的步骤直接导入工程也没问题,当然前提是您的IDEA版本和我的一致或更高;
  2. gradle版本请用2.14.1,此版本可以构建成功,我试过4.6版本,会提示找不到插件"sonar-runner";
  3. 我也试过在导入时选择“Use gradle 'wrapper' task configuration”,如下图,也会导入失败,提示“Could not determine the class-path for interface org.jetbrains.kotlin.kapt.idea.KaptGradleModel.”:

这里写图片描述

欢迎关注阿里云开发者社区博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...
相关文章
|
18天前
|
Java 开发工具 Maven
IntelliJ IDEA安装教程(超详细)
IntelliJ IDEA安装教程(超详细)
76 1
|
24天前
|
XML IDE 开发工具
别看你风吹头顶凉但你绝对没有过这样方便的插件Intellij IDEA 自带的 Vim
别看你风吹头顶凉但你绝对没有过这样方便的插件Intellij IDEA 自带的 Vim
40 0
|
1月前
|
XML 缓存 Java
Spring源码之 Bean 的循环依赖
循环依赖是 Spring 中经典问题之一,那么到底什么是循环依赖?简单说就是对象之间相互引用, 如下图所示: 代码层面上很好理解,在 bean 创建过程中 class A 和 class B 又经历了怎样的过程呢? 可以看出形成了一个闭环,如果想解决这个问题,那么在属性填充时要保证不二次创建 A对象 的步骤,也就是必须保证从容器中能够直接获取到 B。 一、复现循环依赖问题 Spring 中默认允许循环依赖的存在,但在 Spring Boot 2.6.x 版本开始默认禁用了循环依赖 1. 基于xml复现循环依赖 定义实体 Bean java复制代码public class A {
|
17天前
|
JavaScript Android开发
Spring-boot-devTools无效解决办法,idea中devtools不起作用
Spring-boot-devTools无效解决办法,idea中devtools不起作用
|
1月前
|
Java 测试技术 数据库连接
【Spring源码解读!底层原理高级进阶】【下】探寻Spring内部:BeanFactory和ApplicationContext实现原理揭秘✨
【Spring源码解读!底层原理高级进阶】【下】探寻Spring内部:BeanFactory和ApplicationContext实现原理揭秘✨
|
8天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
13天前
|
JSON Kubernetes Go
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
25 0
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
|
13天前
|
安全
IntelliJ IDEA 快捷键大全(三)
IntelliJ IDEA 快捷键大全
75 0
IntelliJ IDEA 快捷键大全(三)
|
25天前
|
Kubernetes Ubuntu Linux
通过 IntelliJ IDEA 对 containerd 进行源码级调试
本文介绍如何在 Ubuntu 22.04 系统上,通过 IntelliJ IDEA 对 containerd 进行源码级调试。我们将从 containerd 的安装、源码编译、验证调试信息的存在,到最终的调试过程中,每一步骤都进行详细讲解。
通过 IntelliJ IDEA 对 containerd 进行源码级调试
|
27天前
|
数据建模 Go vr&ar
idea配置go依赖下载
idea配置go依赖下载
16 0