Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring:如何干净地终止原型范围的bean?_Java_Spring - Fatal编程技术网

Java Spring:如何干净地终止原型范围的bean?

Java Spring:如何干净地终止原型范围的bean?,java,spring,Java,Spring,根据Spring文档,当bean被定义为“原型”时,Spring不会管理其对象的整个生命周期。更具体地说,不调用销毁生命周期回调。客户端代码必须执行所需的清理。spring文档还建议为此使用自定义bean后处理器。但是“BeanPostProcessor”接口只包括bean初始化前后的回调方法。没有用于说明回调的方法。那么,在哪里以及如何释放由原型范围的bean获得的资源呢?您要寻找的是DestructionAwareBeanPostProcessor,它是BeanPostProcessor的一

根据Spring文档,当bean被定义为“原型”时,Spring不会管理其对象的整个生命周期。更具体地说,不调用销毁生命周期回调。客户端代码必须执行所需的清理。spring文档还建议为此使用自定义bean后处理器。但是“BeanPostProcessor”接口只包括bean初始化前后的回调方法。没有用于说明回调的方法。那么,在哪里以及如何释放由原型范围的bean获得的资源呢?

您要寻找的是DestructionAwareBeanPostProcessor,它是BeanPostProcessor的一个子接口


您可以自己创建该接口的新实现,或使用其实现类之一,如CommonAnnotationBeanProcessor。

终止原型范围bean的唯一干净方法是显式调用其一些“destroy”方法来处置资源。
您也可以使用。是关于不同参考类型的更多信息。

@Raihan不确定这是否正确。医生说它只适用于单身人士,这是有道理的;因为Spring如何知道原型bean何时超出范围?有关此接口及其具体方法的详细信息,请查看: