spring的bean生命周期
先看一张图
bean实例化阶段
1、BeanFactoryPostProcessor接口的postProcessBeanFactory方法
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;
}