Spring源码阅读(一):使用IDEA搭建Spring5.0.x源码阅读环境

说明

Spring源码阅读环境配置以下:php

  • Spring 5.x版本
  • Gradle 4.8.1
  • JDK8
  • IDEA2020.1
  • win10

搭建步骤

1. 下载Spring源码

下载地址:Github连接,选择5.x版本java

若是Github下载过慢,可使用码云加速,镜像地址git

另外一种办法是经过fq配置代理,也能够加速下载github

2. 配置Gradle

Spring基于gradle构建,须要先安装配置Gradlespring

Gradle下载地址,选择complete版本,下载后加入环境变量,经过gradle -v验证是否配置成功 api

3. 构建项目

在进行预编译以前,须要检查如下几个地方:bash

  • gradle.properties: 查看版本是否正确
  • jdk版本和gradle版本

在代码目录下执行命令:app

gradlew :spring-oxm:compileTestJava
复制代码

等待编译成功。编译过程可能遇到以下问题:ide

  • An exception occurred applying plugin request [id: 'com.gradle.build-scan', version: '1.8']

解决办法:Gradle版本问题,具体缘由参考此连接gradle

Gradle Build Tool versions Minimum plugin version Maximum plugin version
>= 6.0 3.0 3.3.1
5.0 - 5.6.4 2.0.2 3.3.1
4.1 - 4.10 1.8 1.16
4.0 1.7.4 1.16
2.0 - 3.5 1.0 1.16
< 2.0 not supported not supported
  • org.gradle.api.CircularReferenceException: Circular dependency between the following tasks: :spring-beans:compileGroovy --- :spring-beans:compileJava --- :spring-beans:compileKotlin --- :spring-beans:compileGroovy (*)

解决办法:循环引用问题,注释掉下面三行

4. 导入IDEA

File -> New -> Project from Existing Sources -> 找到 Spring 项目路径 -> 选中 build.gradle,并配置gradle,以下图所示

接下来idea会进行很长时间的build,下载相关jar包,耐心等待便可

可能出现以下问题:

  • 缺乏jar包:spring-cglib-repack-x.x.x.jar、spring-objenesis-repack-x.x.jar

解决办法:在spring的解压目录下执行下面这两个命令

gradle objenesisRepackJar
gradle cglibRepackJar
复制代码

调试代码

新建module,编写本身的代码,对spring代码进行走读。

关于module相关知识,能够参考另外一篇文章:IDEA中Project和Module的关系

项目右击,New->Module

固然也能够建立基于Maven的module,以下所示:

建立module子项目之后,须要添加module依赖,方便导入相关包。以下所示:

至此,能够写代码了。咱们建立一个简单的java bean,并打印。

Person.java:

public class Person {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}
复制代码
Beans.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

	<bean id="person" class="org.wds.Person">
		<property name="name" value="zhangsan"/>
	</bean>
</beans>
复制代码
Main.java:

public class Main {

	public static void main(String[] args) {
		ApplicationContext context =
				new ClassPathXmlApplicationContext("Beans.xml");
		Person obj = (Person) context.getBean("person");
		System.out.println(obj.getName());
	}
}
复制代码

运行结果以下所示:

至此,环境搭建成功,能够经过打断点对源代码进行调试和走读。

相关文章
相关标签/搜索