IOC-Bean

image.png
  • Spring 容器根据实例化策略对 Bean 进行实例化。
  • 实例化完成后,如果该 bean 设置了一些属性的话,则利用 set 方法设置一些属性。
  • 如果该 Bean 实现了 BeanNameAware 接口,则调用 setBeanName() 方法。
  • 如果该 bean 实现了 BeanClassLoaderAware 接口,则调用 setBeanClassLoader() 方法。
  • 如果该 bean 实现了 BeanFactoryAware接口,则调用 setBeanFactory() 方法。
  • 如果该容器注册了 BeanPostProcessor,则会调用postProcessBeforeInitialization() 方法完成 bean 前置处理
  • 如果该 bean 实现了 InitializingBean 接口,则调用 。afterPropertiesSet() 方法。
  • 如果该 bean 配置了 init-method 方法,则调用 init-method 指定的方法。
  • 初始化完成后,如果该容器注册了 BeanPostProcessor 则会调用 postProcessAfterInitialization() 方法完成 bean 的后置处理。
  • 对象完成初始化,开始方法调用。
  • 在容器进行关闭之前,如果该 bean 实现了 DisposableBean 接口,则调用 destroy() 方法。
  • 在容器进行关闭之前,如果该 bean 配置了 destroy-mehod,则调用其指定的方法。
  • 到这里一个 bean 也就完成了它的一生。

推荐阅读更多精彩内容