Bean生命周期扩展点
- 影响多个Bean的实例化
- InstantiationAwareBeanPostProcessor
- BeanPostProcessor
- 影响单个Bean的实例化
- 纯粹的生命周期回调函数
- InitializingBean(BeanPostProcessor 的before和after之间调用)
- DisposableBean
- Aware接口
- 在生命周期实例化过程中调用(在BeanPostProcessor之前)
- 在 ApplicationContextAwareProcessor中调用的(属于BeanPostProcessor#before中的回调 )
基本生命周期:
实例化 → 属性设置 → 初始化 → 销毁
影响多个Bean的实例化
InstantiationAwareBeanPostProcessor
该接口中有以下方法。
分别在bean实例化前后调用。
BeanPostProcessor
该接口有俩方法。在bean初始化前后调用
影响单个Bean的实例化
纯粹的生命周期回调函数
InitializingBean(BeanPostProcessor 的before和after之间调用)
DisposableBean
销毁Bean时调用。
Aware接口
在生命周期实例化过程中调用(在BeanPostProcessor之前)
这类接口,可以在当前Bean实例化过程中,拿到Spring 上下文中相关资源;在一个Bean的实例化过程中,Aware调用时机发生在BeanPostProcessor之前
- BeanNameAware:获取当前Bean名称
- BeanClassLoaderAware:获取当前Bean的ClassLoader
- BeanFactoryAware:获取当前Bean的BeanFactory
在 ApplicationContextAwareProcessor中调用的(属于BeanPostProcessor#before中的回调 )
- EnvironmentAware
- EmbeddedValueResolverAware
- ResourceLoaderAware
- ApplicationEventPublisherAware
- MessageSourceAware
- ApplicationStartupAware
- ApplicationContextAware