包含Bean的创建
创建BeanFactorycreateBeanFactory
创建一个Bean工厂DefaultListableBeanFactory
加载
读取配置文件
设置属性PropertyValues
注册BeanDefinition
BeanDefinitionRegistry.registerBeanDefinition(String , BeanDefinition )
修改BeanDefinition
实例化
填充属性 populateBean
扩展Bean的实例化信息
根据BeanDefinition创建Bean, 注入属性
AbstractBeanFactory.createBean(String , BeanDefinition , Object[] )
初始化initializingBean
BeanFactoryPostProcessor
可以在所有BeanDefinition加载完之后, Bean实例化之前, 修改BeanDefinition属性
BeanPostProcessor
用于修改新实例化 Bean 对象的扩展点
postProcessBeforeInitialization 用于在Bean 对象执行初始化方法之前,执行此方法、 postProcessAfterInitialization 用于在 Bean 对象执行初始化方法之后,执行此方法。