1

这是一个关于如何destroy-methodHazelcastInstancebean 定义上定义 a 的问题。

自 hazelcast 1.9 以来,该HazelcastInstance.shutdown()方法已弃用

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

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

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

    hazelcastInstance.getLifecycleService().shutdown();

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

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

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

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

谢谢你的帮助。

4

1 回答 1

2

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

于 2013-08-12T05:28:07.000 回答