Bean的生命周期
2017-11-21 11:24:29 2 举报
Bean的生命周期
作者其他创作
大纲/内容
实例化BeanPostProcessor实现类
调用 InitializingBean 的 afterPropertiesSet 方法
AbstractAutowireCapableBeanFactoryinvokeInitMethods()
AbstractAutowireCapableBeanFactorypopulateBean()
执行 BeanFactoryPostProcessor 的 postProcessBeanFactory 方法
AbstractAutowireCapableBeanFactoryapplyBeanPostProcessorsAfterInitialization()
AbstractAutowireCapableBeanFactoryresolveBeforeInstantiation()
为Bean注入属性
实例化Bean(执行Bean的构造器)
AbstractAutowireCapableBeanFactoryapplyPropertyValues()
调用 BeanNameAware 的 setBeanName 方法调用BeanClassLoaderAware 的 setBeanClassLoader方法调用BeanFactoryAware 的 setBeanFactory 方法
执行 InstantiationAwareBeanPostProcessor 的postProcessBeforeInstantiation 方法(如果此方法返回非空,则执行postProcessAfterInitialization()然后直接return 这个非空的值)
AbstractAutowireCapableBeanFactoryinvokeAwareMethods()
执行 InstantiationAwareBeanPostProcessor 的postProcessPropertyValues方法
执行 InstantiationAwareBeanPostProcessor 的postProcessAfterInstantiation方法
调用的destroy-method属性指定的初始化方法
执行 BeanPostProcessor 及其子类的postProcessBeforeInitialization 方法
执行 BeanPostProcessor 及其子类的 postProcessAfterInitialization 方法
容器初始化成功,执行正常调用后,下面销毁容器
AbstractAutowireCapableBeanFactoryapplyBeanPostProcessorsBeforeInitialization()
实例化 InstantiationAwareBeanPostProcessorAdapter 实现类
调用 DiposibleBean 的 destory 方法
AbstractAutowireCapableBeanFactorycreateBeanInstance()
AbstractAutowireCapableBeanFactoryregisterDisposableBeanIfNecessary()
AbstractAutowireCapableBeanFactorypopulateBean()完成其他定制的一些依赖注入,如AutowiredAnnotationBeanPostProcessor执行@Autowired注解注入,CommonAnnotationBeanPostProcessor执行@Resource等注解的注入
根据名字和类型进行自动装配(autowire的注入)
实例化 BeanFactoryPostProcessor 实现类
调用的 init-method属性指定的初始化方法
0 条评论
回复 删除
下一页