Spring 是啥
Java 中处处是对象,而 Spring 可认为是承载对象的容器,以及对象的管理者
管理的前提必定是需要充分了解这个对象,因此,对象的信息必不可少
对象信息集中式管理的好处:
- 节省内存:对象的信息,就像原材料,需要时便创建
- 扩展性:信息并不一定只是聚集在一处,在运行时获取对象的额外信息,使得创建的对象能力更加丰富,创造更多可能
- 解耦,就像拆零件,可随时更换其他零件
万丈高楼平地起,如何设计一个 Spring 容器?
定义、注册、获取 |
- 定义:定义对象的信息,我们将 Spring 中的实例化之后的对象称为 Bean,(例如你今天的计划),另外,我们将对象的信息(有哪些字段、方法)称为 BeanDefinition
- 注册:将 BeanDefinition 注册到 Spring 容器中(将计划写到备忘录中)
- 获取:BeanDifiniton 的获取(根据备忘录,根据对应时间点,知道要做什么事情)
现在我们有这样一个类
public class Demo {
public void foo() {
System.out.println("执行了Demo下的foo方法");
}
}
Spring如何对其进行管理呢?
定义 BeanDefinition - 存储对象信息
public class BeanDefinition {
private Class classInfo;
public BeanDefinition(Class classInfo) {
this.classInfo =