谈谈Spring IOC,思路。

157 阅读1分钟

每次提到Spring,第一反应的是IOC,那就先谈谈Spring IOC的理解。

大方向

1、Spring管理对象 控制反转,Spring之前,我们都是自己控制对象的。 用了Spring就是,把整个对象交给Spring控制管理。

2、Spring依赖注入 DI 依赖注入,将对应的属性值,注入到对应的对象里。通过注解,@Autowired, populateBean完成注入。

3、String容器 存储对象,使用map结构,一般三级缓存,singletonObjects存完整Bean对象。 Bean从创建到销毁的过程,都是由容器来完成的。容器管理Bean的整个生命周期。

源起细节

1、IOC里容器很关键,那么容器的创建过程大概就是,应用 beanFactory(接口,没有具体实现),DefaultListableBeanFactory,向bean工厂设置一些参数BeanPostProcessor,Aware接口的子类等属性。

2、加载解析Bean,创建bean对象的定义对象beanDefintion(xml或者注解的解析过程)

3、beanFactoryPostProcessor的处理,Spring有很多的扩展方法, PlaceHolderConfigurSuppor,ConfigrurationClassPostProcessor

4、BeanDefintion对象实力化成具体的bean对象,通过反射的方式。

5、bean对象初始化过程(填充属性-调用aware子类,调用BeanPostProcessor前置处理方法,掉用init-method方法,调用BeanPostProcessor后置处理方法)

6、生成Bean,通过getBean获取。

7、销毁

好好学习,天天向上。