Кэш Spring загрузки не работает должным образомJAVA

Программисты JAVA общаются здесь
Anonymous
Кэш Spring загрузки не работает должным образом

Сообщение Anonymous »

Я пытаюсь использовать кеш кофеина в своем приложении Springboot 3.1.4, но, похоже, это вообще не работает
Метод вызывается каждый раз, и кешируется он всегда пусто
У меня есть класс конфигурации кэша

Код: Выделить всё

@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

Вернуться в «JAVA»