bean生命周期
2021-11-05 13:53:46 0 举报
createBean
作者其他创作
大纲/内容
是否有InstantiationAwareBeanPostProcessor
推断构造方法,生成beanWrapper
N
使用自带的autowired来尝试注入
处理完后bean=null?
尝试让beanPostProcessor工作
createBean
循环调用postProcessProperties处理属性
查找beanClass对应的类
自己创建bean
postProcessor切入点[2]属性赋值
结束
让beanPostProcessor(MergedBeanDefinitionPostProcessor)来处理BD(postProcessMergedBeanDefinition)
属性填充
postProcessor切入点[1]获取bean这一步会尝试返回代理对象
属性注入 applyPropertyValues
创建bean
保证依赖(@DependsOn)的bean都创建了
BeanPostProcessor切入点[3]
处理循环依赖(缺)
重写方法(缺,和@LookUp有关)
获取最终合并后的beanDefinition
处理一下启动过程中提前创建的beanFactory,并从beanWrapper中获取bean(实例化)
Y
返回bean对象
循环调用postProcessAfterInstantiation填充属性,如果有一个返回为false则跳出
判断beanWrapper是否为空
有beanPostProcessor(InstantiationAwareBeanPostProcessor) - 初始化bean(调用postProcessBeforeInstantiation)
让beanPostProccssor尝试处理这个bean(调用postProcessAfterInitialization)
区分作用域scope
0 条评论
下一页