搭建环境说明
- spring源码要求: spring5.3.x版本
- gradle要求: gradle 7.5.1(spring 5.3.x内置要求)
- jdk要求:jdk1.8
详细说明
1. 下载spring源码
下载地址: https://github.com/spring-projects/spring-framework/
下载版本为5.3.x,如下图所示:
下载zip,如图所示:
2. 修改 build.gradle
修改build.gradle
是为了使用阿里云镜像仓库加速。
找到根目录下的build.gradle
,并且添加阿里云仓库地址
maven { url "https://maven.aliyun.com/nexus/content/groups/public/"}
maven { url "https://maven.aliyun.com/nexus/content/repositories/jcenter"}
3. 修改 setting.gradle
修改setting.gradle
也是为了使用阿里云镜像仓库加速。
找到根目录下的build.gradle
,并且添加阿里云仓库地址
maven { url "https://maven.aliyun.com/repository/public" }
4. gradle-wrapper.properties
修改gradle-wrapper.properties
配置,使其从本地下载gradle
-
下载
gradle-7.5.1-bin.zip
:从gradle
官网上下载gradle-7.5.1-bin.zip
-
gradle-7.5.1-bin.zip
下载地址: https://gradle.org/next-steps/?version=7.5.1&format=bin - 历史版本官网: https://gradle.org/releases/
-
-
将
gradle-7.5.1-bin.zip
放入指定文件夹中: 将下载的gradle-7.5.1-bin.zip
放入本地文件夹中,我选择的本地文件夹:D:/devProgram
- 修改
gradle-wrapper.properties
的distributionUrl
配置,修改后配置如下图:
distributionUrl=file:///d:/devProgram/gradle-7.5.1-bin.zip
distributionUrl
的默认配置是从https://services.gradle.org
下载gradle-7.5.1-bin.zip
,比较耗时,因此直接从本地获取。
注意:
gradle-wrapper.properties
在spring-framework-5.3.x/gradle/wrapper
目录中
5. git初始化项目
git
初始化项目的目的,是为了减少后面idea
导入项目之后的报错,git相关的报错,并不影响idea的导入,因此这一步可以省略,我这里还是添加这一步,在spring-framework-5.3.x项目目录下执行下列的命令:
git init
git add .
git commit -m "init"
git config --global --add safe.directory "*"
6. 使用idea导入gradle项目
使用idea打开项目,打开后选择gradle
项目
打开之后需要等十几分钟,我本地需要等待18分钟
7. 新建gradle项目进行测试
导入成功之后,新建一个spring的小项目,进行测试
7.1 新建gradle模块
右键spring-framework-5.3.x
项目,选择New > Module
,从而新建子模块spring-demo
,如下图所示
7.2 父模块中引入新建的模块
新建完毕之后,你会发现settings.gradle
中新增一行文本: include 'spring-demo'
,如下图所示:
只有在 settings.gradle 中添加
include "spring-demo"
之后,我们新建的模块才算是添加到父模块中了!
改变include "spring-demo"
的位置,与其他include
在一起,修改后,如下图所示
7.3 新模块中引入spring依赖
随后,我们开始修改新建的spring-demo
模块的依赖:
- 首先修改
spring-demo
下的build.gradle
为spring-demo.gradle
修改之后的名称:
- 然后引入
spring-context
依赖,从而进行测试,修改之前其依赖情况,如下图:
修改依赖为optional(project(":spring-context"))
,如下图所示:
修改完毕之后,点击下图按钮,refresh一下依赖:
refresh完毕之后,开始进行编码测试
7.4 新模块中引入spring依赖
编码测试,代码如下:
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
public class App {
@Bean
public Person admin() {
Person person = new Person();
person.setName("管理员");
return person;
}
public static void main(String[] args) {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(App.class);
Person person = applicationContext.getBean(Person.class);
System.out.println("person = " + person);
}
public static class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + ''' +
'}';
}
}
}
控制台输出结果如下:
其他问题汇总
控制台乱码
控制台乱码,则编辑idea64.vmoptions
和 idea.vmoptions