【问题标题】:Spring: How to cleanly terminate prototype-scoped beans?Spring:如何干净地终止原型范围的 bean?
【发布时间】:2011-11-16 16:04:50
【问题描述】:

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

【问题讨论】:

    标签: java spring


    【解决方案1】:

    您要查找的是 DestructionAwareBeanPostProcessor,它是 BeanPostProcessor 的子接口。

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

    【讨论】:

    【解决方案2】:

    终止原型范围 bean 的唯一干净方法是显式调用它的一些“销毁”方法来释放资源。 您也可以使用Phantom ReferencesHere 是关于不同类型参考的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      相关资源
      最近更新 更多