Карта ehcache не работает springboot

#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