下载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.”:

这里写图片描述

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

学习路上,你不孤单,欣宸原创一路相伴...
相关文章
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
71 2
|
1月前
|
数据采集 监控 前端开发
二级公立医院绩效考核系统源码,B/S架构,前后端分别基于Spring Boot和Avue框架
医院绩效管理系统通过与HIS系统的无缝对接,实现数据网络化采集、评价结果透明化管理及奖金分配自动化生成。系统涵盖科室和个人绩效考核、医疗质量考核、数据采集、绩效工资核算、收支核算、工作量统计、单项奖惩等功能,提升绩效评估的全面性、准确性和公正性。技术栈采用B/S架构,前后端分别基于Spring Boot和Avue框架。
|
1天前
|
前端开发 Java 开发者
这款免费 IDEA 插件让你开发 Spring 程序更简单
Feign-Helper 是一款支持 Spring 框架的 IDEA 免费插件,提供 URL 快速搜索、Spring Web Controller 路径一键复制及 Feign 与 Controller 接口互相导航等功能,极大提升了开发效率。
|
16天前
|
存储 缓存 Java
Spring面试必问:手写Spring IoC 循环依赖底层源码剖析
在Spring框架中,IoC(Inversion of Control,控制反转)是一个核心概念,它允许容器管理对象的生命周期和依赖关系。然而,在实际应用中,我们可能会遇到对象间的循环依赖问题。本文将深入探讨Spring如何解决IoC中的循环依赖问题,并通过手写源码的方式,让你对其底层原理有一个全新的认识。
38 2
|
1月前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
63 9
|
28天前
|
Java Kotlin 索引
学习Spring框架特性及jiar包下载
Spring 5作为最新版本,更新了JDK基线至8,修订了核心框架,增强了反射和接口功能,支持响应式编程及Kotlin语言,引入了函数式Web框架,并提升了测试功能。Spring框架可在其官网下载,包括文档、jar包和XML Schema文档,适用于Java SE和Java EE项目。
31 0
|
2月前
|
Java Spring
Spring底层架构源码解析(三)
Spring底层架构源码解析(三)
146 5
|
2月前
|
XML Java 数据格式
Spring底层架构源码解析(二)
Spring底层架构源码解析(二)
|
2月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
223 2
下一篇
DataWorks