大致框架按如下
第一次细分
bean对象还未创建 操作第一个map
引入BeanFactoryPostProcessor , 即Bean工厂后处理器 , 为Spring很重要的扩展点
BeanFactoryPostProcessor内部的方法 可以对BeaDefinition进行修改 , 也可进行BeanDefinition的注册 ( 原有在xml文件配置的bean , 进入到BeaDefinitionMap里 , 还可以人为的动态的添加代码
BeaDefinition )
BeaDefinitionRegistryPostProcessor为BeanFactoryPostprocessor的子接口 , 可以很方便的注册BeanDefinition
第二次细分
Bean对象创建完 , 填充到singletonObjectsMap之前
可以对进入到map之前的object进行增强( 属性的修改 , )
BeanPostProcessor#befor方法
BeanPostProcessor#after方法
第三次细分
再次细分出bean的生命周期
左半边为bena的定义阶段 , 右边为bean的生命周期(实例化 ---> 初始化 --->存储)
至此bean创建完成