2

我是 spring-boot 和 hazelcast 的新手。我有一个带有服务层的 spring-boot 应用程序,它应该使用 hazelcast imap。我遇到的问题是我不知道如何获取将数据存储到仅具有 java 配置的 spring 组件的 mapstore。添加组件注释是不够的,我的自动装配存储库为空。

@Component
public class MyMapStore extends implements MapStore<Long, MyClass>, MapLoaderLifecycleSupport{
@Autowired
private MyRepository repository;
...
}

我编写了一个静态 ContextAccessor 来手动加载我的 bean,但这仅适用于 IDE 环境,如果我将应用程序作为 jar 启动则不起作用

@Component
public class MyMapStore extends implements MapStore<Long, MyClass>, MapLoaderLifecycleSupport{

private MyRepository repository = StaticContextAccessor.getBean(MyRepository.class);
...
}

这里的问题是并非所有 bean 都已经加载了 bean,并且存储库没有初始化。

是否有可能让 mapstore 作为 spring 组件运行,甚至在我的存储库加载后强制 hazelcast 初始化?谢谢你的帮助。

4

1 回答 1

3

您可以在 Spring 中连接并实例化您的 MapStore,然后mapStoreConfig.setImplementation(yourSpringMapStore)在为 Hazelcast 准备 Config(包括 MapConfig)时使用方法。

然后,您可以手动启动 Hazelcast,也可以使用工厂方法在 spring 中启动。

于 2016-07-18T20:05:51.833 回答