spring-framework-5.2.0.RELEASE 源码编译 阅读以及断点调试

一.源码获取

由于spring-framework-5.2.0.RELEASE 源码需要从国外下载,下载速度过慢,这里直接提供百度连接让大家下载

链接:pan.baidu.com/s/1bOYb99G1…

 提取码:wqbc --来自百度网盘超级会员V6的分享

二.源码构建及编译

1.将源码导入到idea中,你将会看到如下项目结构

此项目中已经包含.gradle工具,并且源码是已经编译好的,可以直接使用.亲测(Mac和Win10)

2.源码编译

从本连接获取到的源码中,已经是编译完成好的,无需再次编译.又考虑到大家以后会需要新的版本spring源码,所以呢,这里将会把源码编译的整个步骤介绍给大家.授人以鱼不如授人以渔嘛.

1)阿里镜像导入

a.点击项目,在跟目录找到build.gradle文件.在buildscript{}中添加一下这段话:

repositories{
 maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/' }  
 maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter' }
}
复制代码

效果图为:

b.在dependencyManagement{}中将

扫描二维码关注公众号,回复: 13168326 查看本文章
repositories {   
mavenCentral()   
maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
复制代码

替换为:

repositories {   
maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/' }  
maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter' } 
mavenCentral()   maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
复制代码

效果图如下:

2)在idea的控制台中输入以下这段话:

gradlew.bat :spring-oxm:compileTestJava

可能需要点时间,效果图如下:

编译完成后,效果图如下:

如出现:BUILD SUCCESSFUL in 1m 50s 提示.那么就要恭喜你了,spring源码编译到此结束了,准备踏上你的源码阅读环节吧!!!!

三.源码断点操作

1.构建gradle项目

由于spring源码中是使用gradle构建项目的.所以呢,就需要使用gradle创建一个属于我们自己的项目了.莫要担心自己没有学过gradle,所有放弃了以下步骤.这里呢,我分析给大家一种基于idea工具构建gradle项目的方法,零基础也ok.想想自己之前maven0基础不也创建出来maven项目了嘛

1)右键根目录->选择New->点击Moudle...,效果图如下:

2)选择Gradle->勾选java->点击Next.效果图如下:

3)Parent 选择当前父项目 spring ->Name为你的gradle项目名 ->Location为你的项目路径,默认在当前根目录下.效果图如下:

4)当在跟目录下,发现自己所创建的新项目时,恭喜你构建gradle项目成功.如图所示:

2.源码断点调试

1)gradle 依赖

gradle和maven一样,当构建项目成功时.要引入需要的gradle依赖.我们是要阅读spring源码,所以需要引入spring的依赖喽

dependencies {  
  testCompile group: 'junit', name: 'junit', version: '4.12'
  compile(project(":spring-beans"))    
  compile(project(":spring-core"))    
  compile(project(":spring-aop"))    
  compile(project(":spring-context"))
}
复制代码

如图所示:

2)Main类构建

这里介绍的是使用,AnnotationConfigApplicationContext注解的方式去读配置文件,

至于使用ClassPathXmlApplicationContext以xml的方式去配置文件,感兴趣的小伙伴可以自己试试哈.

a.SpringConfig.class类

@Configurationpublic class SpringConfig {
   @Bean("user")  
   public User getUser() {     
   return new User("xxj", 30);  
   }
}
复制代码

b.User.class类

public class User {
    private String userName;
    private Integer age;

    public User() {
    }

    public User(String userName, Integer age) {
        this.userName = userName;
        this.age = age;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}
复制代码

c.ApplicationAnnotation.class

public class ApplicationAnnotation {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
        Object user = context.getBean("user");
        System.out.println(user);
    }
}
复制代码

3)断点演示

到这里为止呢,spring源码阅读之前的准备工作,基本上算是完成,,接下来呢.就是断点调试源码阶段了.

Ctrl+F7,进入:

由此就是spring源码的入口了,spring-framework-5.2.0.RELEASE 源码编译 阅读以及断点调试到此也就结束了.

长路迢迢,愿君长相乐.

猜你喜欢

转载自juejin.im/post/7018815160827510814