这是一个关于如何在 HazelcastInstance
bean 定义上定义 destroy-method
的问题。
自 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()"
。我需要一个简单的(public,void)销毁方法。
不想编写包装类,是否有适当的方法通过销毁方法销毁我的 hazelcast 实例?
注意:HazelcastClient 确实提供 shutdownAll方法,因此 destroy-method="shutdownAll"
在这种情况下确实是可能的。
为什么 HazelcastInstance 不能实现同样的效果?我错过了什么吗?
感谢您的帮助。
最佳答案
除了创建包装类之外,我也没有看到任何其他方法。我会问 HazelcastInstance.shutdown() 方法是否不需要删除;只需转发到LifecycleService即可。 shutdown 方法是我最常使用的方法,也许 api 可以简化一点。
关于java - HazelcastInstance bean - 正确的销毁方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17419806/