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 @   淡泊的咸鱼  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示