Я новичок в Hazelcast. Я пытаюсь реализовать кэширование в моем весеннем загрузочном приложении. Я создал класс конфигурации для Hazlecast с двумя конфигами карты (CacheObject и CacheList). У меня есть два метода objectMethod (), который возвращает один объект Object сотрудника и listMethod (), который возвращает список Objects сотрудника.
Я использую аннотацию @cacheable для objectMethod и listMethod. Проблема только в том, что кеш объекта работает, кеш списка не работает. Когда я запускаю программу в режиме отладки, кеш объекта возвращает значение, не входя в метод, но кеш списка всегда выполняет методы и получает значение из базы данных.
Мне не хватает какой-либо конфигурации или чего-то еще?
Я использую загрузочную версию Spring 2.1.3. RELEASE, Hazelcast версии 3.11.1 и Hazelcast-spring версии 3.11.1.
Я попробовал URL-адрес кэша Spring-привода, чтобы увидеть кеш, но я вижу только CacheObject, а не CacheList.
http://localhost:8080/actuator/caches
{"cacheManagers":{"cacheManager":{"caches":{"CacheObject":{"target":"com.hazelcast.map.impl.proxy.MapProxyImpl"}}}}}
класс конфигурации
@Configuration
public class HazelcastCacheConfig {
@Bean
public Config cacheConfig() {
return new Config().setInstanceName("hazelcast-instance")
.addMapConfig(new MapConfig().setName("CacheObject")
.setMaxSizeConfig(new MaxSizeConfig(100, MaxSizeConfig.MaxSizePolicy.FREE_HEAP_SIZE))
.setEvictionPolicy(EvictionPolicy.LRU).setTimeToLiveSeconds(86400))
.addMapConfig(new MapConfig().setName("CacheList")
.setMaxSizeConfig(new MaxSizeConfig(100, MaxSizeConfig.MaxSizePolicy.FREE_HEAP_SIZE))
.setEvictionPolicy(EvictionPolicy.LRU).setTimeToLiveSeconds(86400));
}
@ кешируемая аннотация
@Cacheable(value="CacheList")
public List<Employee> getEmployeeList(String a, String b, String b){
//Query
return employeeList;
}
@Cacheable(value="CacheObject")
public Employee getEmployeeObject(String a, String b, String v) {
//Query
return employeeObject;
}
класс сотрудников
public class Employee implements Serializable{
private static final long serialVersionUID = 1L;
private string a,
private string b,
private string c,
private UUID d,
private Map<String,String> e;
}