源碼搭建原因
爲了更好的閱讀 spring-framework 源碼,我們需要把 spring-framework 的源碼工程 clone 下來,這樣我們就可以 修改源碼,添加註釋,查看源碼 以及 debug 。
源碼搭建步驟
clone 代碼(5.2.0.BUILD-SNAPSHOT)
- 首先我們選用大型同性交友網站 github 進行源碼存儲:spring-framework地址
- 我這邊直接將源碼 fork 到自己倉庫,然後 clone 下來源碼,這樣我就可以保存自己的修改
配置環境
- jdk需要1.8版本
- 需要安裝gradle
新建 module
- 在 spring-framwork 工程下新建我們的測試 module,因爲 spring-framwork 是以 gradle 進行版本和 jar 包管理依賴,所以我們要新建 gradle module
- 新建過程和 maven 過程沒啥區別,新建之後就會有你自己的測試工程目錄
- 查看 spring-framwork 的 gradle 文件
- 配置自己測試工程的 gradle 管理,這個名字改成在 spring-framwork 的 gradle 文件中的 include 的名字,然後自己測試工程的 gradle 文件中依賴自己的工程
- 開始測試
創建 Student 類:
public class Student {
private Integer id;
private String name;
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(final Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
}
創建 Teacher 類:
public class Teacher {
private Student student;
@Override
public String toString() {
return "Teacher{" +
"student=" + student +
'}';
}
public Student getStudent() {
return student;
}
public void setStudent(final Student student) {
this.student = student;
}
}
創建 TeacherConfig 類,使用註解的方式進行 bean 的加載:
@Configuration
public class TeacherConfig {
@Bean
public Teacher teacher() {
Teacher teacher = new Teacher();
Student student = new Student();
student.setId(2);
student.setName("daming");
teacher.setStudent(student);
return teacher;
}
}
創建 SimpleDemoTest 測試類,使用註解解析器進行上下文管理:
public class SimpleDemoTest {
public static void main(String[] args) {
final AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(TeacherConfig.class);
final Teacher teacher = (Teacher) applicationContext.getBean("teacher");
System.out.println(teacher);
}
}