掘金 后端 ( ) • 2024-06-29 09:41

搭建环境说明

  • 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,如下图所示:

选择对应的spring5.3.x

下载zip,如图所示:

image.png

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"}

image.png

3. 修改 setting.gradle

修改setting.gradle 也是为了使用阿里云镜像仓库加速。

找到根目录下的build.gradle,并且添加阿里云仓库地址

maven { url "https://maven.aliyun.com/repository/public" }

image.png

4. gradle-wrapper.properties

修改gradle-wrapper.properties配置,使其从本地下载gradle

  1. 下载gradle-7.5.1-bin.zip:从gradle官网上下载 gradle-7.5.1-bin.zip

  2. gradle-7.5.1-bin.zip放入指定文件夹中: 将下载的gradle-7.5.1-bin.zip 放入本地文件夹中,我选择的本地文件夹: D:/devProgram

image.png

  1. 修改gradle-wrapper.propertiesdistributionUrl配置,修改后配置如下图:
distributionUrl=file:///d:/devProgram/gradle-7.5.1-bin.zip

distributionUrl的默认配置是从https://services.gradle.org下载gradle-7.5.1-bin.zip,比较耗时,因此直接从本地获取。

注意:gradle-wrapper.propertiesspring-framework-5.3.x/gradle/wrapper目录中

image.png

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项目

image.png

打开之后需要等十几分钟,我本地需要等待18分钟

7. 新建gradle项目进行测试

导入成功之后,新建一个spring的小项目,进行测试

7.1 新建gradle模块

右键spring-framework-5.3.x项目,选择New > Module,从而新建子模块spring-demo,如下图所示 image.png

image.png

7.2 父模块中引入新建的模块

新建完毕之后,你会发现settings.gradle中新增一行文本: include 'spring-demo',如下图所示:

image.png

只有在 settings.gradle 中添加include "spring-demo"之后,我们新建的模块才算是添加到父模块中了!

改变include "spring-demo"的位置,与其他include在一起,修改后,如下图所示

image.png

7.3 新模块中引入spring依赖

随后,我们开始修改新建的spring-demo模块的依赖:

  1. 首先修改spring-demo下的build.gradlespring-demo.gradle

image.png

修改之后的名称:

image.png

  1. 然后引入spring-context依赖,从而进行测试,修改之前其依赖情况,如下图:

image.png

修改依赖为optional(project(":spring-context")),如下图所示:

image.png

修改完毕之后,点击下图按钮,refresh一下依赖:

image.png

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 + ''' +
               '}';
      }
   }
}

控制台输出结果如下:

image.png

其他问题汇总

控制台乱码

控制台乱码,则编辑idea64.vmoptionsidea.vmoptions