【Spring系列】- 手写模拟Spring框架
|
上次已经学习了Java的设计模式,接下来就先来学习一下如何手写模拟简易的Spring,通过动手实践,才会更好的了解spring底层原理,今天就简单的模拟Spring容器是如何创建,bean又是如何注入的。
来看一下本次案例的spring类图
|
模拟spring,首先就是需要一个容器,是Spring的核心,一切Spring bean都存储在Spring容器内,并由其通过IoC技术管理。Spring容器也就是一个bean工厂(BeanFactory)。应用中bean的实例化,获取,销毁等都是由这个bean工厂管理的。就像我们刚开始学习的时候接触的ApplicationContext,就是spring的容器,他就是为了完成容器的配置,初始化,管理bean的。因此笔者自己创建了一个LydApplicationContext来模拟简单的spring容器。
首先通过new LydApplicationContext(AppConfig.class)
实例化对象,在通过applicationContext.getBean("userService")
去获得bean对象。然而在容器的初始化可是做了许多的事情,包括扫描、实例化bean等等操作。
初始容器创建:
public class LydApplicationContext { private Class configClass; public LydApplicationContext(Class configClass) { // 构造方法 this.configClass = configClass; } } 相关文章