Spring相关01——Spring IOC

42 阅读1分钟

SPRING IOC

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

image.png

什么是IOC

IOC就是控制反转:是一种设计理念把对象的创建和调用过程交给容器进行管理

优点是:

1)实现资源的可配置和易管理

2)降低代码耦合度

DI依赖注入,把对应的属性值注入到具体的对象中,由 @Autowired@resource注解完成,使用配置文件定义bean时,由populateBean完成注入

spring容器:使用map结构的三级缓存来存储对象,bean的整个生命周期都由容器来管理

容器的创建过程

1.(beanFactory,DefaultListableBeanFactory),向bean工厂中设置一些参数(BeanPostProcessor,Aeare接口的子类)等等属性。

2.加载解析bean对象,准备要创建的bean对象的定义对象beanDefinition(xml或者注解的解析过程)

3.beanFactoryPostProcessor的处理,此处是扩展点,PlaceHolderConfigurSupport,ConfigurationClassPostProcessor

4.BeanPostProcessor的注册功能,方便后续对bean对象完成具体的扩展功能

5.通过反射的方式将BeanDefinition对象实例化成具体的bean对象

6.bean对象的初始化过程(填充属性,调用aware子类的方法,调用BeanPostProcessor前置处理方法,调用init-mehtod方法,BeanPostProcessor的后置处理方法)

7.生成完整的bean对象,通过getBean方法可以直接获取

8.销毁过程