有关多例bean生命周期的问题

有关多例bean生命周期的问题

​spring框架管理多例的bean时  销毁的权限为什么要给gc呀  而不是交给容器来管理呢

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小班 2021-04-12 18:57:42

同学你好,1、singleton:在每个Spring IoC容器中,一个bean定义对应一个对象实例。

    ​    ​Spring容器的默认作用域,当一个bean的作用域为singleton时,Spring IoC容器中只会存在一个Bean实例,并且所有对Bean的请求,只要id对应相匹配,就只会返回Bean的同一个实例。

    ​    ​当把一个Bean定义设置为singleton作用域时,Spring IoC容器只会创建该Bean定义的唯一实例。所以单实例模式对于无会话状态的Bean(如DAO组件、Service组件)来说都是最理想的选择。对应在Spring中就规定了,单实例交给Spring容器来管理。

    ​    ​2、prototype:一个bean定义对应多个对象实例。bean在每次对该bean请求时都会创建一个新的bean实例,Spring容器在初始化、装配好一个原型模式实例后,将它交给客户端,就不再过问了。因此,调用者要负责实例的生命周期管理。

如上所示,就是Spring这样规定的初衷。

祝学习愉快!

好帮手慕小班 2021-04-12 18:22:40

同学你好,当设置Bean的作用域为prototype时,销毁方法会出现冲突。所以当作用域为prototype时,Spring容器不能够对Bean的整个生命周期进行管理,最终对象的销毁和资源回收由使用者负责。

祝学习愉快!

  • 提问者 范不 #1
    那为什么单例时,容器就可以控制它的销毁呢
    2021-04-12 18:32:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师