Spring Bean 的生命周期

  1. 根据配置情况调用Bean的构造函数或工厂方法,完成Bean的实例化
  2. 通过依赖注入完成Bean所有属性值的注入
  3. 如果Bean实现了BeanNameAware接口,则调用Bean的setBeanName()方法并传入当前Bean的id
  4. 如果Bean实现了BeanFactoryAware接口,则调用Bean的setBeanFactory()方法并传入当前工厂类的引用
  5. 如果Bean实现了ApplicationContextAware接口,则调用Bean的setApplicationContext()方法并传入当前ApplicationContext的引用
  6. 如果BeanPostProcessor与Bean关联,则Spring将调用该接口的预初始化方法postProcessBeforeInitialization()方法对Bean进行加工操作,此处非常重要,Spring的AOP就是利用这个实现的
  7. 如果Bean实现了InitializingBean接口,则Spring将调用afterPropertiesSet()方法
  8. 如果在配置文件中通过init-method属性指定了初始化方法,则调用该初始化方法
  9. 如果BeanPostProcessor与Bean关联,则Spring将调用该接口的初始化方法postProcessAfterInitialization()方法,此时,Bean已经可以被系统使用了
  10. 如果在配置中指定了该Bean的作用范围为singleton,则将该Bean放入Spring IoC的缓存池中,将触发Spring对该Bean的生命周期管理;如果作用范围为prototype,则将该Bean交给调用者,由调用者管理该Bean的生命周期,Spring则不再管理该Bean
  11. 如果Bean实现了Disposable接口,则Spring会调用destroy()方法将Spring中的Bean销毁;如果在配置文件中通过属性destroy-method配置了Bean的销毁方法,则Spring将调用该方法对Bean进行销毁
posted @ 2022-05-06 09:30  淡泊的咸鱼  阅读(34)  评论(0)    收藏  举报