由于从github网络下载太慢,就直接在gitee下载了gitee源码镜像,fork主要是为了可以添加注释
将fork的源码clone到本地
git clone https://gitee.com/Yezi-up/Spring-Framework.git
因为本次查看的源码是基于5.2,所以先切换分支再导入到idea
git checkout -b 5.2.x origin/5.2.x
第一次打开大概需要15-20分钟
gradle.properties 中查看,我们编译的版本为 5.2.19.BUILD-SNAPSHOT
version=5.2.19.BUILD-SNAPSHOT org.gradle.jvmargs=-Xmx1536M org.gradle.caching=true org.gradle.parallel=true
可以先修改项目的编译和运行方式,默认是Gradle
,使用这种方式可以直接运行 3.1 中的例子,如果换为 IntelliJ IDEA
则会碰到一些问题,在 3.2 中是解决方式。
但是换成IntelliJ IDEA
执行时会快很多
plugins { id 'java' } group 'org.springframework' version '5.2.19.BUILD-SNAPSHOT' repositories { mavenCentral() } dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' compile(project(":spring-context")) // 添加spring的依赖 } test { useJUnitPlatform() }
public class Student { public String name = "zhangsan"; @Override public String toString() { return "Student{" + "name='" + name + '\'' + '}'; } }
public class Test { public static void main(String[] args) { // 实例化 ioc容器 AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(); applicationContext.register(Student.class); // 初始化 容器 applicationContext.refresh(); System.out.println(applicationContext.getBean(Student.class)); } }