美文网首页
2020-08-23 spring生命周期

2020-08-23 spring生命周期

作者: zecan | 来源:发表于2021-06-29 12:07 被阅读0次

    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。

    相关文章

      网友评论

          本文标题:2020-08-23 spring生命周期

          本文链接:https://www.haomeiwen.com/subject/hrcwjktx.html