- bean实例化阶段
- 1、BeanFactoryPostProcessor接口的postProcessBeanFactory方法
- 2、BeanNameAware接口
- 3、BeanFactoryAware/ApplicationContextAware接口
- bean初始化阶段
- 4、BeanPostProcessor接口两个方法
- 5、执行BeanPostProcessor的postProcessBeforeInitialization方法
- 6、InitializingBean接口的afterPropertiesSet方法
- 7、自定义的init-method方法
- 8、执行BeanPostProcessor的postProcessAfterInitialization方法
- 使用bean
- bean的销毁,DisposableBean的destroy方法
先看一张图
beanFactoryPostProcessor接口可以在bean未被实例化之前获取bean的定义即配置元数据 BeanDefinition,然后根据需要进行更改。
2、BeanNameAware接口拿到bean实例化之后的bean的名称,在方法setBeanName中可以更改bean名称。
3、BeanFactoryAware/ApplicationContextAware接口实现该接口,可以拿到spring容器中的bean
bean初始化阶段 4、BeanPostProcessor接口两个方法// 前置方法
default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
// 后置方法
default Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
5、执行BeanPostProcessor的postProcessBeforeInitialization方法
6、InitializingBean接口的afterPropertiesSet方法
7、自定义的init-method方法
8、执行BeanPostProcessor的postProcessAfterInitialization方法
使用bean
bean的销毁,DisposableBean的destroy方法



