【问题标题】:HazelcastInstance bean - what is the proper destroy-method?HazelcastInstance bean - 什么是正确的销毁方法?
【发布时间】:2013-07-02 07:26:02
【问题描述】:

这是一个关于如何在HazelcastInstance bean 定义上定义destroy-method 的问题。

从 hazelcast 1.9 开始,HazelcastInstance.shutdown() 方法变成了deprecated

现在,以下似乎是不可能的 - 下面是一个来自 OSGI 蓝图的 bean 定义(它以与 spring 类似的方式定义 bean,但不完全相同):

<bean id="hazelcastInstance" class="com.hazelcast.core.Hazelcast"
      factory-method="newInstance" destroy-method="shutdown">
    <argument ref="hazelcastConfig"/>
</bean>

通过代码关闭 hazelcastInstance 的正确方法如下:

    hazelcastInstance.getLifecycleService().shutdown();

...但是不可能在我的 bean 定义中声明 destroy-method="getLifecycleService().shutdown()"。我需要一个简单的 (public, void) destroy 方法。

不想编写包装类,是否有适当的方法通过销毁方法销毁我的 hazelcast 实例?

注意:HazelcastClient 确实提供了shutdownAll 方法,所以destroy-method="shutdownAll" 在这种情况下确实是可能的。

为什么 HazelcastInstance 不一样?我错过了什么吗?

感谢您的帮助。

【问题讨论】:

    标签: java spring hazelcast blueprint-osgi spring-bean


    【解决方案1】:

    除了创建一个包装类之外,我也没有看到任何其他出路。我会问是否不需要删除 HazelcastInstance.shutdown() 方法;只是可以转发到 LifecycleService。关闭方法是我最常用的方法,也许api可以简化一点。

    【讨论】:

    • 谢谢,最好弃用(不推荐?)那个。
    • 我们在 HazelcastInstance 上重新添加了关闭方法。
    • 太棒了,哪个发行版将包含此更改?
    猜你喜欢
    • 2012-05-16
    • 2020-09-14
    • 1970-01-01
    • 2013-09-02
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    相关资源
    最近更新 更多