spring源码构建

Posted 大圣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring源码构建相关的知识,希望对你有一定的参考价值。

本文记录springframework源码构建的基本流程,环境是基于JDK 1.8.0(好像1.8以下会比较麻烦)IDE是Idea 2019 2.2(最好是2019版的2.x)

配置gradle环境

1、下载gradle  https://www.jianshu.com/p/d9329117aa2f   目前安装的版本是4.9

2、配置环境变量

3、gradle -version

4、配置好环境后可以去设置idea,以便后期编译spring项目时使用gradle

下载源码

前往GitHub下载spring-project源码。

 

导入IDE

File - New - Project from Existing Source... - 选择本地源码文件的目录

 

编译spring项目

 1、编译spring-context生成out文件(这里有的时候idea在导入项目时就编译好了有的时候没有编译);

2、编译spring-core生成out文件,这个项目也可以这样编译,在Gradle工具栏目中执行 compileJava

这里编译会去下载一个CGlib相关的jar包,在5.x时没有携带这个包。如果在此步之前进行使用项目的话会报错,应该就是没这个包导致的。

如果到此都顺利的话应该就没啥问题了。

 

3、当然也可以操作Gradle工具上的刷新按钮,但是会很慢,以上两步编译完了应该就可以了,这个Reimport会很慢

创建项目

1、创建一个新模块

右键spring总项目 - new - mould

2、修改build.gradle文件

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

 

 3、创建自定义类

创建一个自定义的类来添加@Component注解是否能引入成功

创建一个test类看是否能添加bean成功

AppConfig类

import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

@Configuration
@Component   //这个注解主要是为了检测能否添加注解
public class AppConfig {

}

test类

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

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

 这里如果出现报错,比如xxx.java中找不到xxx符号,这时可以去找到这个类的项目模块重新编译下,这样能解决80%的异常。

 

以上是关于spring源码构建的主要内容,如果未能解决你的问题,请参考以下文章

Spring一小部分源码解析(持续)

Spring Boot部署JAR文件瘦身优化经验分享

如何查看spring源码

spring——AOP原理及源码

Spring5源码解析-前奏:本地构建Spring5源码

Spring源码深度解析-《源码构建》