Bean生命周期扩展点
基本生命周期:
实例化 → 属性设置 → 初始化 → 销毁
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c04c369b958c4545bb713da91012d409.png)
影响多个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