#java #spring-boot #caching #ehcache
#java #весенняя загрузка #кэширование #ehcache
Вопрос:
я пытался кэшировать карту <строка, запись> , но каждый раз, когда я обнаруживал, что getEntries() попадает в базу данных без кэширования, также я сериализую объект ввода, пожалуйста, ваша поддержка
@Cachable("stocks")
public Map<String,Entry> getEntries(){
//getting entry from database then convert to map
return map;
}
Ответ №1:
Это работает для меня
@Service
public class OrderService {
public static int counter = 0;
@Cacheable("stocks")
public Map<String, Entry> getEntries() {
counter ;
final Map<String, Entry> map = new HashMap<>();
map.put("key", new Entry(123l, "interesting entry"));
return map;
}
}
Вот тест, чтобы доказать, что счетчик не вызывается.
@Test
public void entry() throws Exception {
OrderService.counter = 0;
orderService.getEntries();
assertEquals(1, OrderService.counter);
orderService.getEntries();
assertEquals(1, OrderService.counter);
}
Я добавил все это в свой пример на github