关于spring容器里的bean的destroy-method问题

来源:百度知道 编辑:UC知道 时间:2024/05/11 03:35:09
写了个PersonBean,里面定义了destroy()方法

如果在spring中配置该bean的destroy-method="destroy", 当该bean的scope为singleton时,容器关闭时会调用destroy方法,可一但改scope为prototype,
容器关闭就不去调用destroy方法了,这是怎么回事?

spring的说明中有这样一句话,我大致翻译了一下:

“对于prototype作用域的bean,有一点非常重要,那就是Spring不能对一个 prototype bean的整个生命周期负责:容器在初始化、配置、装饰或者是装配完一个prototype实例后,将它交给客户端,随后就对该prototype实例不闻不问了。不管何种作用域,容器都会调用所有对象的初始化生命周期回调方法,而对prototype而言,任何配置好的析构生命周期回调方法都将不会被调用。清除prototype作用域的对象并释放任何prototype bean所持有的昂贵资源,都是客户端代码的职责.”