Bean的创建过程(简洁版本!)
BeanDefinitionReader 加载全部的Bean信息(会将bean信息存在ThreadLocal,防止多线程情况下出现错误)
执行BeanFactoryPostProcessor 执行对应的前置处理器(Bean信息的处理)
Bean对象实例化(通过反射进行实例化)
Bean对象的属性填充 (单例情况下,这里才会出现循环依赖问题)
如果实现了Aware接口则会进行调用
BeanPostProcessor后置处理器的前置方法执行
执行Bean的初始化方法
BeanPostProcessor后置处理器的后置方法执行
清空ThreadLocal
完整单例对象 存在map中
Bean的生命周期(简洁版本!)
与上方Bean的创建过程类似
实例化对象(根据加载的Bean信息进行实例化)
初始化对象(填充属性,这里可能会产生循环依赖问题)
如果实现了Aware接口,这里会执行
BeanPostProcessor(Bean的后置处理器的前置方法执行)
执行初始化方法
BeanPostProcessor(Bean的后置处理器的后置方法执行)
清理
销毁