• Spring中Bean的生命周期


    单例对象的生命周期和多例对象的生命周期不一样。

    单例对象:

    单例对象单例对象的生命周期与容器的生命周期相同

    出生读取完配置文件,即创建容器,只要容器一创建,就马上创建对象

    活着只要容器还在,对象一直活着

    死亡容器销毁,则对象消亡

    现在来测试一下,在类中添加两个方法:

     

    注意:此时是单例对象。

     

     结果为:

    只要执行完第一行代码,就立即创建和初始化对象。当关闭容器时,对象就销毁了。

    如果是多例对象,即使关闭了容器,对象也没有销毁。

    多例对象:

     

     结果:

    发现只有在使用(获取)的时候才会初始化,这与刚才采用BeanFactory时看到的现象是一样的,如果改成singleton,只要读取完配置文件,马上就初始化对象了。

    Spring是非常智能的框架,它可以感知到对象的作用范围是单例还是多例,从而来选择什么时候创建对象,即对象创建的时机是立即还是延迟,单例对象就是立即,多例对象就是延迟。

    借助bean标签的两个属性init-method和destroy-method

    多例对象:(仅作了解)

    出生当我们使用(获取)对象时,spring框架为我们创建和初始化对象

    活着对象只要是在使用过程中就一直活着

    死亡当对象长时间不用,且没有别的对象引用时,由java的垃圾回收器回收

    Spring不负责多例对象的销毁。

  • 相关阅读:
    .NET 使用EF执行存储过程你知道几种?
    SQLserver 如何优雅的行转列
    SQLserver 如何获取近1月、近3个月、近6月数据
    三汇自动挂断问题:SIP兼容性,ACK检测,忽略ACK开启。
    几个flutter 开源项目测试
    Android versions for all users globally
    Using Flutter 2 on M1 MacOS Apple Silicon
    Educational Codeforces Round 111
    Wannafly挑战赛1
    摆烂记录
  • 原文地址:https://www.cnblogs.com/zwh0910/p/14618130.html
Copyright © 2020-2023  润新知