Spring源码环境搭建 -(源码下载运行)

一、下载源码

  • https://github.com/spring-projects/
  • 本次使用的源码 spring-framework-5.1.x
  • Gradle-7.2-bin(也可以用源码文件中指定的版本)
  • jdk 11  (jdk1.8以上即可)
  • ide 2021.2.2(或 ide2019)

登录Spring官网,选择Spring-framework

  • 直接下载zip压缩包,解压到本地即可,git clone 太慢

 二、选择对应版本的gradle,下载gradle

三、导入源码

 ->选中相应的源码文件

 -> 选中 Gradle 因为Spring官网是用的 Gradle,这里保持一致 

-> 修改 Gradle 配置

 

-> 导入Spring项目后,构建下,构建成功就ok,这里构建的时候报错:提示git命令非0退出, 但是构建成功了(这个版本为5.3.16)

-> 这个问题折腾了好久,后面又陆续下载了 5.3.x 版本,替换了各种版本的Gradle,还是不行,删除项目中的.git也不行,最后下载了 spring-framework-5.1.x 这个版本直接编译通过了。。

  • 这个问题呢,项目构建提示是成功的,但是后面运行spring-contextspring-core时会直接编译失败​

-> 重新下载源码的步骤略:

 -> gradle目录下,.properties 文件有对应版本,可以根据指定版本进行gradle下载,这里不想重新搭建环境,就直接使用旧的Gradle

  • gradle每次编译都会从官网下载指定版本(gradle-4.10.3-bin.zip),所以我们在它第一次下载完之后,将distributionUrl设置成本地文件,这样就不会每次编译都从官网下载了,本次这里未替换
  • distributionUrl=file:///e:/dev_gradle/gradle-4.10.3-bin.zip(选择gradle的压缩包的全路径地址)

-> 构建成功之后,找到ApplicationContext

  • 打开后,按下Ctrl+Alt+U键,如果出现下图所示类图界面说明构建成功了!(构建过程就是找依赖对象的过程)

四、编译源码

-> 编译源码前,可以查看 import-into-idea.md 文件

 -> 文档要求先编译spring-oxm下的compileTestjava,这里我是直接编译spring-core

 -> 编译 spring-context,源码下载下来没有class,需先编译一下 

  • spring-context依赖于 spring-core

 -> 编译都通过后,创建自己的Module模块

 ->在应用中引入依赖,并构建下,如下

   //添加完要构建一下,否则代码中无法引用
    compile(project(":spring-context"))
    compile(project(":spring-beans"))
    compile(project(":spring-core"))
    compile(project(":spring-aop"))
    compile(project(":spring-instrument"))

 -> 创建类对象 SysConfig 

package config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import pojo.UserInfo;

@Configuration
//@ComponentScan
public class SysConfig {

	//@Bean
	//public UserInfo getUser(){
	//	return new UserInfo();
	//}
}

-> 创建启动类

package controller;

import config.SysConfig;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class SysControllerTest {
	public static void main(String args[]){
		AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(SysConfig.class);
		System.out.println(ac.getBean(SysConfig.class));
	}
}

 -> 启动测试,这里报了一个Kotlin 的错误,提示 Kotlin 版本过低 1.1 在build.gradle 中修改下版本并重新构建就ok

 -> 最后编译运行结果如下

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

forward93124

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值