我是 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 初始化?谢谢你的帮助。