0%

springBean生命周期(1)

文章字数:455,阅读全文大约需要1分钟

SpringBean从创建、初始化操作、就绪、销毁。组成了一个完整的生命周期。

大致流程

普通的容器和spring的耦合很低,使用过程中不用知道spring的存在,将容器从spring替换成其他容器也可以正常运行。然而部分功能需要用到容器本身的功能和资源,于是spring提供了spring aware系列可以在初始化容器时通过接口的形式提供。

  1. 实例化
  2. 填充属性
  3. 调用BeanNameAwaresetBeanName方法
    如果Bean实现此接口,调用setBeanName方法并传入Beanid
  4. 调用BeanFactoryAwaresetBeanFactory方法
    如果Bean实现此接口,调用方法传入Spring工厂本身
  5. 调用ApplicationContextAwaresetApplicationContext方法
    如果Bean实现此接口,调用方法传入ApplicationContext,即spring容器上下文
  6. 调用BeanPostProcesspostProssBeforeInitialization方法
    如果Bean实现此接口,调用方法传入(Object bean,String beanName)
    这个方法是在初始化结束时调用,所以通常应用于内存或缓存技术

初始化结束

  1. 如果beanSpring配置文件中配置了init-method属性,会自动调用配置的初始化方法

  2. 调用InitializingBeanafterPropertiesSet方法

  3. 调用BeanPostProcesspostProcessAfterInitialization方法
    如果Bean实现此接口,调用方法传入(Object bean,String beanName)
    初始化之后调用的方法

  4. Bean准备就绪


销毁

  1. 调用DispostbleBeandestory方法
    在清理阶段,实现此方法的Bean会调用destory方法销毁
  2. 调用指定的销毁方法
    如果在配置文件指定destory-method方法,会自动销毁