Spring5源码系列-01-源码下载编译
程序员文章站
2022-07-12 12:30:10
...
序言
Spring
作为一个非常优秀的框架,值得每个java开发者学习一下,学习其优秀的设计思想,下面是我自己关于Spring
源码的下载和编译
参考学习链接
- https://blog.csdn.net/weixin_43360548/article/details/108882029
- https://blog.csdn.net/baomw/article/details/83956300
- https://www.jianshu.com/p/74348b1a4421
- https://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_131
- idea集成开发工具
下载编译
下载
- 点击网页上的 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();
}
}
测试运行结果: