Spring源码环境搭建

源码环境编译

准备环境工作

  1. JDK 1.8.022
  2. Gradle 5.6.3
  3. Idea 2018.2.8.win
  4. Spring 5.1

Gradle配置

配置Gradle国内镜像访问地址信息

在Gradle安装目录init.d下,新建init.gradle文件夹,其中输入内容为:

allprojects{
    repositories {
      def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
    all { ArtifactRepository repo ->
        if(repo instanceof MavenArtifactRepository){
            def url = repo.url.toString()
            if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
                project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
                remove repo
            }
        }
    }
    maven {
        url REPOSITORY_URL
      }
  }
}

Spring 源码项目

下载链接地址:git clone --depth=1 https://github.com/spring-projects/spring-framework.git

下载完成后,直接使用Idea进行导入。注意设置Idea的Gradle为自定义版本信息。

Spring源码环境搭建_第1张图片

注意事项:

  1. 选定自动导入配置信息
  2. 使用本地Gradle信息
  3. 使用Jvm参数,-XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m

导入完成之后,请注意项目中的路径将会有蓝色标识符显示,如下图:

Spring源码环境搭建_第2张图片

预编译项目

修改docs.gradle

在项目路径gradle下找到docs.gradle,将dokka和asciidoctor开头的Json数据删除或者注释。

排除spring-aspects项目组件

在项目列表中找到spring-aspects,右键点击load/unload modul,将该项目组件全部排除。

预编译oxm项目

Spring源码环境搭建_第3张图片

编译整体项目

Spring源码环境搭建_第4张图片

至此,项目编译结束。

配置执行kotlin

请看Kotlin如下配置:Spring源码环境搭建_第5张图片

如果不是1.3,会报错,无法进行执行我们自定义的modul代码,需要进行更新

更新Kotlin

Spring源码环境搭建_第6张图片

更新完成重启后,即可使用我们的项目环境进行源码阅读。

新建项目进行测试

在根项目中,右键新建gradle项目,并引入依赖:

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

并简单测试一个我们的启动类是否能正常完成引用:

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {
   public static void main(String[] args){
      ApplicationContext ac = new AnnotationConfigApplicationContext(JavaConfig.class);
      System.out.println(ac.toString());
   }
}

SUCCESS

小结

在整个过程中,网络环境的要求比较高,很多内容都是国外的,所以你懂得。。

如果有任何问题,欢迎联系我,QQ:772846384,一起交流

你可能感兴趣的:(Spring,注解方式,Spring,AOP,切面编程,spring,boot)