3

Bean的生命周期

正确理解spring容器中bean的生命周期很重要,有利于对bean的装配过程中进行一些自定义内容。如下图所示的生命周期:
图片描述

如上图所见,在bean准备就绪之前,bean工厂执行了若干启动步骤,详细描述如下:

  • spring对bean实例化;
  • spring将值和bean的引用注入到bean对应的属性中;
  • 如果bean实现了BeanNameAware接口,spring将bean的id传递给setBeanName()方法,该方法的作用就是设置bean的id到BeanFactory中方便创建该bean,同时让bean知道自己在BeanFactory配置中的名字
  • 如果bean实现了BeanFactoryAware接口,spring将调用setBeanFactroy()方法,将BeanFactory容器实例传入,便于bean够获取配置他们的BeanFactory的引用
  • 如果bean实现了ApplicationContextAware接口,spring将调用setApplicationContext()方法,将bean所在应用上下文的引用传进来,便于bean获取它所在的Spring容器
  • 如果bean实现了BeanPostProcessor接口,spring将调用它的postProcessBeforeInitialization()方法,该方法在bean初始化之前调用;
  • 如果bean实现了InitializingBean接口,spring将调用它的afterPropertiesSet()方法,当bean的所用属性被设置完成之后调用该方法;
  • 如果bean实现了BeanPostProcessor接口,spring将调用它的postProcessAfterInitialization()方法,在bean初始化完成之后调用;
  • 如果bean实现了DisposableBean接口,spring将调用它的destory()方法;

一只小小鸟
144 声望25 粉丝

如何做一个深层次的思考者,从简单开始、从记录开始。