首先我们需要下载一套源码到本地
源码下载与编译 下载源码 1. 使用Git clone下载安装了Git可以直接clone到本地
源码版本选择
本来直接clone的最新版本,但是一直报各种错,参考了官方说明才知道最新版本已经需要JDK17了(已哭晕...)
https://github.com/spring-projects/spring-framework/wiki/Build-from-Sourcehttps://github.com/spring-projects/spring-framework/wiki/Build-from-Source
我们如果还想用JDK8,需要选择较前版本。
查看GitHub的更新情况,最近的一个稳定版本是5.2.21.RELESE
GA即General Availability,表示正式发布的版本(国外通常用 GA 来标识 release 版本,GA 版本是开发团队认为该版本是稳定版(也有使用Stable/Production的),可以在生产环境中使用。 我这边使用的是JDK8,所以选择分支版本
git clone -b 5.2.x https://github.com/spring-projects/spring-framework.git
2. 网页下载
下载地址https://github.com/spring-projects/spring-framework
如果GitHub打不开/下载速度太慢我这边也把源码上传了下,有两种下载方法供大家选择:
1. csdn的资源链接:想支持下的同学可以选csdn的资源链接送瓶水支持下^_^(毕竟码字不易,喝饱水,持续分享更有动力,多谢🙏🙏🙏 诚恳脸.jpg)
Spring源码(5.2.21版本,tar.gz格式,JDK8可用)-Java文档类资源-CSDN下载
2. gitee:当然分享是第一要务,我也在上传压缩文件到了gitee上,可直接自取
spring5源码
导入idea
选择Gradle工程
idea会自动加载,等他加载好
报错处理(未遇到,可跳过)异常详情
POM relocation to an other version number is not fully supported in Gradle : xml-apis:xml-apis:2.0.2 relocated to xml-apis:xml-apis:1.0.b2.
即需要将xml-apis:xml-apis的版本换为1.0.b2,在项目中全局搜索xml-apis
尝试在项目根目录下的build.gradle文件中添加如下代码,指定xml-apis的版本为1.0.b2
configurations.all {
resolutionStrategy {
force 'xml-apis:xml-apis1.0.b2'
}
}
重新加载
新建module测试按下图选择,然后next,起个名,完成~
修改配置在新建module中的build.gradle中添加如下配置:
compile(project(":spring-context"))
新建测试类记得刷新gradle,然后新建文件(我这边建了一个启动类+一个配置类+一个实体类)进行测试
代码如下:
AqinApplication.java
package com.aqin;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
/**
* @author aqin1012 AQin.
* @date 2022/4/18 4:16 PM
* @Version 1.0
*/
public class AqinApplication {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);
System.out.println(context.getBean(AqinEntity.class));
}
}
AqinEntity.java
package com.aqin;
import org.springframework.stereotype.Component;
/**
* @author aqin1012 AQin.
* @date 2022/4/18 4:17 PM
* @Version 1.0
*/
@Component
public class AqinEntity {
String name;
Integer age;
}
JavaConfig.java
package com.aqin;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
* @author aqin1012 AQin.
* @date 2022/4/18 5:00 PM
* @Version 1.0
*/
@Configuration
@ComponentScan("com.aqin")
public class JavaConfig {
}
查看测试结果
加上断点,debug进行测试,下图可以看到新建的实体类已经被spring容器加载进去啦,撒花🎉🎉🎉~~~
常见报错通用处理方式如果按照本文的所有版本仍出现了一些奇奇怪怪的报错,请检查以下三个地方
1. 编译工具
1⃣️ 是否是自己本地gradle的路径
2⃣️ 默认都是Gradle,可尝试如图中选项配置
3⃣️ 选择Specified location,后面选择本地gradle的路径
4⃣️ 选择本地的1.8版本JDK
2. 编译器
1⃣️ 选择1.8版本
3. 项目结构
1⃣️ 选择本地安装的1.8版本JDK
2⃣️ 选择SDK 8
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)