@Bean
public Config inMemoryHazelCastCache() {
return new Config().setInstanceName(configuration.getCacheInstanceName())
.addMapConfig(new MapConfig().setName(configuration.getCacheName())
.setMaxSizeConfig(new MaxSizeConfig(configuration.getJvmCacheMaxSize(), MaxSizeConfig.MaxSizePolicy.FREE_HEAP_SIZE))
.setEvictionPolicy(EvictionPolicy.LRU).setTimeToLiveSeconds(configuration.getJvmCacheTtl()));
}
@Bean
public HazelcastCacheManager hazelcastCacheManager() {
return new
HazelcastCacheManager(Hazelcast.newHazelcastInstance(inMemoryHazelCastCache()));
}
@Lazy
@Bean
@DependsOn("inMemoryHazelCastCache")
public JVMCacheFacade<String> jVMCacheFacade(@Autowired HazelcastCacheManager
hazelcastCacheManager) {
IMap<String, String> cacheInstance =
hazelcastCacheManager.getHazelcastInstance().getMap(configuration.getCacheName());
return new JVMCacheFacade<>(cacheInstance);
}
Как показано в приведенном выше фрагменте, у меня есть 3 bean-компонента, inMemoryHazelCastCache для возврата конфигурации экземпляра кеша в памяти hazelcastCacheManager для получения HazelcastCacheManager с указанной выше конфигурацией jVMCacheFacade, чтобы получить фасад для доступа к собственному кешу, но по-прежнему экземпляр кеша с точным именем, с которым я создал конфигурацию, не возвращается. Мне здесь не хватает какой-нибудь основной c вещи?