如何让Runnable知道Hazelcast中的一些本地应用程序bean?

时间:2016-12-03 09:19:08

标签: java hazelcast

假设我有一组嵌入式hazelcast实例。在每个节点的运行时,我有一个bean的实例,它保留了一些状态(比方说 - 一些特定于应用程序的配置参数)。我可以保证这个状态在整个应用程序生命周期内的每个节点上都是常量,不可变和相同的。

现在,我需要在通过Hazelcast的IExecutorService执行的Runnables中使用这个bean。我正在寻找的东西,比如HazelcastInstanceAware接口,但是对于我的bean - 一些合同将从节点获取我的bean实例,Runnable应该被执行,并在执行之前将它传递给Runnable。 p>

我不可能并希望在集群上序列化这个bean(我认为没有理由,因为我在每个节点上都有完全相同的bean状态)。我现在不使用也不打算使用任何依赖框架,因此Spring不是一个选项(我不想让依赖注入框架只注入一个bean)。

我有任何选择吗?

1 个答案:

答案 0 :(得分:1)

创建HazelcastInstance时,您可以配置com.hazelcast.core.ManagedContext实例(com.hazelcast.config.Config#setManagedContext),该实例将根据自定义规则(如接口实现或类似规则)注入您自己的实例。