java - Hazelcast MapStore 作为 Spring 组件

标签 java spring spring-boot hazelcast hazelcast-imap

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

@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,并且存储库未初始化。

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

最佳答案

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

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

关于java - Hazelcast MapStore 作为 Spring 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38429366/

相关文章:

java - Android URI 类 - 它的用途是什么?

java - 检查两个不同的 ArrayLists 是否相等

java - Java 的 UDP _DatagramSocket.connect()_ 有什么作用?

java - 所需的字符串参数 'surname' 不存在

java - 提示用户在 Java 中输入是或否

java - Spring AOP 注释不起作用

spring - 如何在 Spring Boot 中注入(inject) user_provided vcap_services

java - 为什么在 Spring 配置类中的 @Bean 方法上不需要 @Autowired?

java - Spring Boot上传BootRepackage可执行Jar

spring-boot - Eureka 服务给出请求执行错误?