Метод вызывается каждый раз, и кешируется он всегда пусто
У меня есть класс конфигурации кэша
Код: Выделить всё
@Configuration
@EnableCaching
public class CacheConfig {
@Bean
public Caffeine caffeineConfig() {
return Caffeine.newBuilder().expireAfterWrite(60, TimeUnit.MINUTES);
}
@Bean
public CacheManager cacheManager(Caffeine caffeine) {
CaffeineCacheManager caffeineCacheManager = new CaffeineCacheManager();
caffeineCacheManager.setCaffeine(caffeine);
return caffeineCacheManager;
}
}
Код: Выделить всё
public class Utils {
@Cacheable
public Integer test (Integer id) {
System.out.println("Not in cache : " + id);
return id + 2;
}
}
Код: Выделить всё
@RestController
public class TestController {
@Autowired
CacheManager cacheManager;
@GetMapping("/test")
public void test() {
Utils utils = new Utils();
System.out.println(utils.test(3));
System.out.println(utils.test(3));
System.out.println(utils.test(4));
CaffeineCache caffeineCache = (CaffeineCache) cacheManager.getCache("JSON");
Cache nativeCache = caffeineCache.getNativeCache();
for (Map.Entry entry : nativeCache.asMap().entrySet()) {
System.out.println("Key = " + entry.getKey());
System.out.println("Value = " + entry.getValue());
}
}
}
Код: Выделить всё
Not in cache : 3
5
Not in cache : 3
5
Not in cache : 4
6
Подробнее здесь: https://stackoverflow.com/questions/788 ... s-expected