bean生命周期
2021-09-13 17:19:45 5 举报
spring
作者其他创作
大纲/内容
调用所有实现了BeanPostProcessor中的postProcessBeforeInitialization方法,如果有返回值不为null,则还可以顶包,成为容器中的嘉宾
推断构造方法,实例化bean
autowire-AutowiredAnnotationBeanPostProcessorresource-CommonAnnotationBeanPostProcessor
applyBeanPostProcessorsBeforeInitialization
applyBeanPostProcessorsAfterInitialization
getMergedLocalBeanDefinition
如果设置了autowireMode
applyMergedBeanDefinitionPostProcessors
调用所有实现了BeanPostProcessor中的postProcessAfterInitialization方法,如果有返回值不为null,最后次顶包,可aop代理设置对象
doCreateBean
填充bean的属性
调用所有实现了MergedBeanDefinitionPostProcessor的后置处理器中的postProcessMergedBeanDefinition
populateBean
BeanNameAwareBeanClassLoaderAwareBeanFactoryAware
如果beanDefinition是继承于某个beanDefinition,则递归合并该父类及其祖宗所有BeanDefinition属性,但是子类属性可以覆盖父类
doGetBean
调用所有实现了InstantiationAwareBeanPostProcessor的后置处理器中的postProcessBeforeInstantiation方法
Prototype
invokeInitMethods3中方式注册初始化方法InitializingBeanmbd.getInitMethodName()PostConstruct
createBeanInstance
initializeBean
这是在对象实例化后,属性还未赋值前调用,在里面可以自己完成对属性的赋值,spring对于已经自定义赋值的会skip(方法skip,属性简单点也这样理解)
如果是单例的,容器关闭则回调销毁方法
registerDisposableBeanIfNecessary
getBean
createBean
多例,每次都去创建Bean
resolveBeforeInstantiation
applyBeanPostProcessorsBeforeInstantiation
手工定义bean创建顺序,此bean创建必须基于dependsOn
初始化bean
isSingleton
parentBeanFactory.getBean
invokeAwareMethods
0 条评论
回复 删除
下一页