源码搭建原因
为了更好的阅读 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);
}
}