springBean生命周期
2021-06-18 15:57:29 0 举报
springBean生命周期详细流程
作者其他创作
大纲/内容
beanClassLoaderAware
ApplicationContextAwareProcessor这个类的源码,就是判断当前创建的Bean是否实现了相关的Aware方法,如果实现了会调用回调方法将资源传递给Bean。基于对修改关闭,对扩展开放的原则,Spring对一些新的Aware采用了扩展的方式添加。
ApplicationContext相关aware
初始化(initializeBean)
createBean()
ApplicationContext相关的Aware都是通过BeanPostProcessor#postProcessBeforeInitialization()来获取资源的
只调用一次的接口
1
实例化和属性赋值都是Spring帮助我们做的,能够自己实现的有初始化和销毁两个生命周期阶段。
ApplicationContextAware
3
4
EmbeddedValueResolverAware
初始化:InitializingBean中的invokeInitMethods中调用获取aware;除了实现InitializingBean接口之外还能通过注解或者xml配置的方式指定初始化方式,我们一般只采用其中一种方式
Aware类型的接口
postProcessBeforeInstantiation
EnvironmentAware
销毁(DisposableBean#close)
beanFactoryAware
实例化(createBeanInstance)
initializeBean方法中的invokeInitMethods方法前后调用3、4
直接获取资源的aware
生命周期接口
postProcessAfterInstantiation
ConfigurableApplicationContext#close通过循环获取所有实现了DisposableBean接口的Bean然后调用其destroy()方法
BeanPostProcessor
初始化
属性赋值(populatebean)
多个扩展点
销毁
beanNameAware
InstantiationAwareBeanPostProcessor
2
影响多个bean的接口
1中创建AOP代理对象,2中进行对象替换
0 条评论
下一页