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

单例对象:

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

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

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

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

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

 

注意:此时是单例对象。

 

 结果为:

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

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

多例对象:

 

 

 结果:

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

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

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

多例对象:(仅作了解)

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

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

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

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

 

posted on 2021-04-05 12:14  周文豪  阅读(270)  评论(0编辑  收藏  举报