资料:https://javadoop.com/

Bean的生命周期

  1. 实例化
  2. 设置属性,BeanNameAware、BeanFactoryAware
  3. 初始化,可以通过继承InitializingBean的afterPropertySet和init-method,在初始化前后可以BeanPostProcessor的before-initialization和post-initialization处理
  4. 使用和注销,destory方法或DisposableBean的destory方法

image.png

BeanPostProcessor和BeanFactoryPostProcessor的区别?

BeanFacotoryPostProcessor作用于Bean实例化之前,读取或设置元数据,如scope等
BeanPostProcessor则用于在初始化前后执行一些逻辑,如缓存等

Bean的初始化或销毁的几种方式和顺序

初始化:@PostConstrrct -> InitializingBean -> init-method
销毁: @PreDestroy -> DisposableBean -> destroy-method

Bean的装配方式

  1. 通过xml配置
  2. 通过@Configuration和@Bean
  3. 通过自动化处理:注解扫描和@Autoware装配