HazelcastInstance bean - 什么是正确的破坏方法?

时间:2013-07-02 07:26:03

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

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

自hazelcast 1.9以来,HazelcastInstance.shutdown()方法变为deprecated

现在,似乎以下是不可能的 - 下面是来自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();

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

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

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

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