我是春季靴子和淡褐色的新手。我有一个带有服务层的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初始化? 谢谢你的帮助。
答案 0 :(得分:2)
您可以在Spring中连接并实例化MapStore,然后在为Hazelcast准备Config(包括MapConfig)时使用mapStoreConfig.setImplementation(yourSpringMapStore)
方法。
然后您可以手动或在春季使用工厂方法启动Hazelcast。