Spring 源码环境搭建(spring源码构建)

  本篇文章为你整理了Spring 源码环境搭建(spring源码构建)的详细内容,包含有spring源码环境搭建调试 spring源码构建 spring源码视频教程 spring 源码 设计模式 Spring 源码环境搭建,希望能帮助你了解 Spring 源码环境搭建。

  Spring 是面向 Bean 的编程,Bean 在其中起到了巨大的作用,而 Spring 提供了 IOC 容器来管理对象之间的依赖关系,使我们可以更加关注业务,轻松的构建一个企业应用。借助 IOC 特性和 AOP 面向切面编程,可以说 Spring 为开发者提供了无限的可能,接下来我们一步步来揭穿其中的原理,就先从搭建源码开始吧!

  1. 环境

  Gradle-5.6.4

  JDK-1.8

  IntelliJ IDEA 2022.3.2

  Spring-5.2.9RELEASE

  Windows 10

  2. 构建工具 Gradle

  通过官网的源码仓库我们可以知道,Spring 官方构建工具是 Gradle,所以我们构建源码之前需要准备好 Gradle 环境。

  2.1 Gradle 下载

  Gradle 下载地址 :https://gradle.org/releases/
 

  选择 5.6.4 下载到本地(尽量使用一致的版本,避免编译失败部分组件无法下载)。
 

  2.2 Gradle 配置

  配置 GRADLE_HOME:
 

  配置 Path:
 

  2.3 Gradle 验证

  执行 gradle -v 查看安装情况:
 

  
 

  出现上图的输出信息,说明我们的环境准备就绪!

  2.4 Gradle 仓库

  Gradle 仓库一般都是国外的镜像,为了加速我们的构建,我们将配置阿里镜像仓库进行加速。

  在 Gradle 安装目录中的 init.d 文件夹下新建 init.gradle 文件,配置阿里云加速器:

  

allprojects {

 

   repositories {

   maven { url https://maven.aliyun.com/repository/central}

   maven { url https://maven.aliyun.com/repository/jcenter}

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

   maven { url https://maven.aliyun.com/repository/google}

   maven { url https://maven.aliyun.com/repository/gradle-plugin}

   maven { url https://maven.aliyun.com/repository/grails-core}

   maven { url https://maven.aliyun.com/repository/spring}

   maven { url https://maven.aliyun.com/repository/spring-plugin}

   maven { url https://maven.aliyun.com/repository/apache-snapshots}

   mavenCentral()

  

 

  3. 下载源码

  本地我们搭建的环境选择的源码是 Spring-5.2.9RELEASE 版本,尽量和我保持一致,避免出现其他的编译问题。

  3.1 Clone 代码

  spring-framework 仓库地址:https://github.com/spring-projects/spring-framework
 

  通过 git 命令将代码拉下来:

  

# clone 代码

 

  git clone https://github.com/spring-projects/spring-framework.git

  # 切 tag

  git checkout Spring-5.2.9RELEASE -b Spring-5.2.9RELEASE

  

 

  通过上的命令我们首先将代码拉到本地,然后通过 git checkout 命令切换到指定的 tag 上,并且新建本地 Spring-5.2.9RELEASE 分支方便我们后续进行分支操作。

  3.2 编译代码

  在 spring-framework源码目录中打开 cmd 命令行,执行 .\gradlew.bat 命令进行构建,该过程会持续一段时间,我们不妨去歇下来稍事等待。
 

  
 

  出现 BUILD SUCCESSFUL 表示我们编译过程结束了,接下来就可以导入到 IDEA 中。
 

  PS:
 

  a. 我已经执行过一次编译,所以我的时间是非常快的。
 

  b. 若果编译过程中出现了相关问题,需要根据报错的信息进行排查。

  4. 导入 IDEA

  使用 IDEA 打开编译好的项目,需要提前配置好 IDEA 的 Gradle 以及 JDK 版本,接下来等待 IDEA build 完成即可:
 

  
 

  
 

  当出现如下信息时,说明 IDEA 导入构建完成:
 

  
 

  那么接下来,我们就可以开始编写模块开始验证了。

  5. 构建测试模块

  为了阅读源码,我们需要自己建立一个模块用来测试实例以及调试源码。

  5.1 新建 Module

  选择 Gradle 构建工具进行项目创建,完成后整体结构如下:
 

  
 

  
 

  5.2 引入依赖

  在 build.gradle 中共引入依赖,便于后续的测试:

  

plugins {

 

   id java

  group org.springframework

  version 5.2.9.RELEASE

  repositories {

   mavenCentral()

  dependencies {

   testImplementation org.junit.jupiter:junit-jupiter-api:5.8.1

   testRuntimeOnly org.junit.jupiter:junit-jupiter-engine:5.8.1

   testCompile group: junit, name: junit, version: 4.10

   compile(project(":spring-context"))

  test {

   useJUnitPlatform()

  

 

  5.3 编写代码

  新建一个类用于测试(加载到 IOC 容器中):

  

public class MyTestBean {

 

   private String testStr = "testStr";

   public String getTestStr() {

   return testStr;

   public void setTestStr(String testStr) {

   this.testStr = testStr;

  

 

  在 resources 目录下新建 BeanFactoryTest.xml 文件,配置 bean 定义:

  

 ?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.xsd"

   bean id="myTestBean" /

   /beans

  

 

  在 test 文件夹中通过 junit 进行测试:

  

public class BeanFactoryTests {

 

   * 手动加载 xml 获取 bean

   @Test

   public void simpleLoadTest() {

   // 基于xml加载并注册Bean的流程

   BeanFactory bf = new XmlBeanFactory(new ClassPathResource("BeanFactoryTest.xml"));

   MyTestBean myTestBean = (MyTestBean) bf.getBean("myTestBean");

   Assert.assertEquals("testStr", myTestBean.getTestStr());

   @Test

   public void testClassPathXmlApplication() {

   // 基于 xml 加载并注册 Bean 的流程

   ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:BeanFactoryTest.xml");

   MyTestBean myTestBean = (MyTestBean) applicationContext.getBean("myTestBean");

   Assert.assertEquals("testStr", myTestBean.getTestStr());

  

 

  运行上述的其中一个测试方法,如下图没有错误即表示我们的环境搭建完成:
 

  以上就是Spring 源码环境搭建(spring源码构建)的详细内容,想要了解更多 Spring 源码环境搭建的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: