ing 发表于 2019-7-10 10:47

当一个bean的作用域为prototype导致销毁方法不执行?

本帖最后由 ing 于 2019-7-11 09:56 编辑


我没有理解为什么作用域为prototype(每次从容器中调用Bean时,都返回一个新的实例) 会导致销毁方法的不执行,
我尝试过在销毁方法上下断点但方法没有进入过...

运行截图以及Bean类


注解方式进行的spring配置


销毁方法

JKyle52 发表于 2019-7-10 11:05

按我理解的是,当作用域为prototype时,Spring容器不会Bean的整个生命周期进行管理,它只是负责new一个对象出来,当你使用完该对象后会自动销毁或者等待回收,如果作用域换成singleton,它的生命周期就由Spring容器负责,应该能调用到destroy方法

ing 发表于 2019-7-10 13:36

JKyle52 发表于 2019-7-10 11:05
按我理解的是,当作用域为prototype时,Spring容器不会Bean的整个生命周期进行管理,它只是负责new一个对象 ...

可如果sprin不对生命周期进行管理为什么生命周期的初始化被调用了?

JKyle52 发表于 2019-7-10 13:49

ing 发表于 2019-7-10 13:36
可如果sprin不对生命周期进行管理为什么生命周期的初始化被调用了?

你getBean的操作,对作用域为prototype的Bean,都是new一个新的对象出来,网上也有很多对prototype和destroy的坑的描述,可以深入了解下
页: [1]
查看完整版本: 当一个bean的作用域为prototype导致销毁方法不执行?