2020-08-23 spring生命周期

1.Spring bean的生命周期概括起来就是4个阶段:
(1)实例化(Spring 容器实例化bean)
(2)属性赋值(设置bean的相关属性和依赖)
(3)初始化

  • 1.如果实现BeanNameAware接口,Spring 传递bean 的ID 到 setBeanName方法。
  • 2.如果实现BeanFactoryAware接口,Spring传递beanfactory 给setBeanFactory 方法。
  • 3.有任何与bean相关联的BeanPostProcessors,Spring会在postProcesserBeforeInitialization()方法内调用它们。
  • 4.如果实现 initializingBean接口,调用此初始化方法。
  • 5.检查是否有配置init-method方法,则执行指定的初始化方法
  • 6.如果有BeanPostProcessors 和bean 关联,这些bean的postProcessAfterInitialization() 方法将被调用。
    (4)销毁
  • 1.如果实现DisposableBean接口,执行dispose方法
    -2.如果配置了自定义的destory-method,则执行指定的销毁方法
image.png

2.spring是如何解决循环依赖问题的?
(1)spring bean的初始化分为两步:一是对象的创建,而是设置属性值
(2)当创建A对象时,ApplicationContext.getBean()从容器中取不到A的对象,便开始创建对象。创建完后,赋属性值b时,ApplicationContext.getBean()取不到b对象,于是去创建b对象。对象B创建完后,将半成品b赋值给A对象。然后当b对象赋值属性a时,调用ApplicationContext.getBean()将a的属性设置进b。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Bean的生命周期是Spring面试热点问题。这个问题即考察对Spring的微观了解,又考察对Spr...
    1234哦哦阅读 1,026评论 0 8
  • 只有四个! 是的,Spring Bean的生命周期只有这四个阶段。把这四个阶段和每个阶段对应的扩展点糅合在一起虽然...
    EllisonPei阅读 350评论 0 0
  • 在讲springBean的生命周期之前首先来看一下Web容器启动的时候,是如何去开启Sping的整个流程。 随着容...
    萝灏阅读 2,125评论 0 0
  • Spring Bean生命周期 1.BeanDefinition Spring中对象皆为bean,进而将bean的...
    Johar77阅读 600评论 0 0
  • 前言 这其实是一道面试题,是我在面试百度的时候被问到的,当时没有答出来(因为自己真的很菜),后来在网上寻找答案,看...
    java菜阅读 360评论 0 3