【问题标题】:spring bean life cycle management with finalize method? [closed]spring bean 生命周期管理与 finalize 方法? [关闭]
【发布时间】:2017-09-09 15:56:36
【问题描述】:

什么是bean生命周期?为什么控制反转不会自动调用destroy()方法,为什么要显式调用?

【问题讨论】:

  • @MohitTyagi 可能不是因为 dup 目标中没有提到最终确定。
  • @surya 为什么需要控制最终确定。在 Java 中,永远无法保证会调用 finalize(),并且依赖于它的代码可能会以神秘的方式失败。不要这样做。相反,请阅读 Spring 文档中的 Destruction Callbacks

标签: java spring inversion-of-control


【解决方案1】:

finalize() 方法与 Spring bean 生命周期无关。
此方法在对象被垃圾收集后的某个时间调用。
由于很难准确预测何时调用此方法,因此重写它被认为是不好的做法。
在任何情况下,您都不应该直接调用它。

Spring bean 生命周期描述为here - 搜索“销毁回调”。
通常,您使用 @PreDestroy 注释来注释 bean 的某些方法,并且在 Spring 容器被销毁时调用此方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    相关资源
    最近更新 更多