Spring5源码系列-01-源码下载编译

    科技2022-07-12  120

    序言

    Spring作为一个非常优秀的框架,值得每个java开发者学习一下,学习其优秀的设计思想,下面是我自己关于Spring源码的下载和编译

    参考学习链接

    https://blog.csdn.net/qq_38762237/article/details/107815524https://blog.csdn.net/baomw/article/details/83956300https://www.jianshu.com/p/74348b1a4421https://blog.csdn.net/a704397849/article/details/102754505

    学习视频链接

    https://www.bilibili.com/video/BV1XJ41117tT?from=search&seid=13695484075934721207

    下载

    Spring官网链接

    https://spring.io/projects/spring-framework

    环境

    maven环境gradle 使用源码自带的gradleWraper中的gradle版本(速度太慢),建议换成一样版本号gradle本地的JDK环境 我本地使用 jdk 1.8.0_131idea集成开发工具

    下载编译

    下载

    点击网页上的 github 小猫标志,进入spring-framework github源码地址点击 tags 版本标签 推荐下载最新的RELEASE版本 现在最新的版本为 v5.2.9.RELEASE解压用源码里面里面自带的gradle远程下载依赖

    这是源码里面自带的D:\gitcode\spring-framework-5.2.9.RELEASE\gradle\wrapper\gradle-wrapper.properties里面的配置

    distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists 修改build.gradle

    打开build.gradle文件,全文找到repositories节点,会发现,里面有2个配置

    原始配置

    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" } }

    编译

    安装官网的方式编译:

    使用gradlew(gradle-wrapper命令) 先编译oxm:compileTest Java: Precompile spring-oxm with ./gradlew :spring-oxm:compileTestJava

    编译compileTestJava模块

    打开spring源码文件夹的目录,输入

    gradlew :spring-oxm:compileTestJava 下载速度太慢解决

    修改gradle-wrapper.properties,修改同学分享的连接,或者修改为本地连接

    distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists #distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip distributionUrl=http://scooper.top/wp-content/uploads/gradle-5.6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists

    或者

    distributionUrl=file:///E:/soft/gradle-xx-bin.zip

    分享百度云gradle-5.6.4-bin.zip文件

    链接:https://pan.baidu.com/s/1baAgzSnsddXUNYiWO9ceEw 提取码:7lph

    编译结果如下

    下面的报错不影响整体

    将编译好的代码导入idea中

    添加测试模块

    添加依赖 dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile(project(":spring-context")) }

    compile(project(":spring-context")) 代表本项目的 2. 随意添加任意bean:

    @Service public class UserServiceImpl { public void sayHi(){ System.out.println("Hello Spring!"); } } @Configuration @ComponentScan public class MainApp { public static void main(String[] args) { ApplicationContext context=new AnnotationConfigApplicationContext(MainApp.class); UserServiceImpl bean = context.getBean(UserServiceImpl.class); bean.sayHi(); } }

    测试运行结果:

    Processed: 0.009, SQL: 8