这是关于如何在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为什么不一样?我错过了什么吗?
感谢您的帮助。
答案 0 :(得分:2)
除了创建包装类之外,我也没有看到任何其他方法。我会问是否需要删除HazelcastInstance.shutdown()方法;只需转发到LifecycleService即可。关机方法是我经常使用的方法,也许api可以简化一点。