Spring bean生命周期

Spring生命周期

  1. 实例化Bean,当客户向map中请求一个bean时,我们就会实例化这个bean
  2. 设置对象属性(依赖注入),实例化后的对象被封装在BeanWrapper中,紧接着spring根据BeanDefinition中的信息进行依赖注入。
  3. 注入Aware接口,spring会检测该对象是否实现了XXAware接口。
  4. BeanPostProcessor,经过上面的步骤,bean已经被正确构造,如果你想进一步对其进行处理,就可以通过BeanPostProcessor接口进行处理。这个接口提供了两个方法。
    • postProcessorBeaforeInitialzation (Object bean, String beanName),这个方法会先与InitializingBean执行,称为前置处理器。
    • postProcessorAfterIntialzation(Object bean, String beanName),这个方法会后与InitialzingBean执行,称为后置处理器。
  5. 如果bean实现了InitiazingBean,执行afterPropertiesSet()方法。
  6. 如果bean配置文件中包含init_method()方法,执行指定的方法

  7. 当要销毁bean时,bean实现了DisposableBean接口,则执行destroy()方法。

  8. 如果bean配置文件中定义了destroy-method方法,则执行该方法。