Не понимаю, почему не создается кеш с указанным мною идентификатором
Мне необходимо результаты задачи шедулера писать в кеш для того, чтобы в дальнейшем из этого кеша могли читать другие сервисы.
Проблема заключается в том, что кеш с указанным мной id не создается. Что сделал:
добавил зависимости
описал конфигурацию (работать требуется через javax-интерфейс)
прописал в пропертис
читаю/пишу
org.springframework.boot spring-boot-starter-cache com.github.ben-manes.caffeine caffeine ${caffeine.version} com.github.ben-manes.caffeine jcache ${caffeine.version} javax.cache cache-api
spring: cache: type: caffeine cache-names: allowed-ids
@Configuration @EnableCaching public class CacheConfig {
@Bean public CacheManager cacheManager() { CachingProvider caffeineCachingProvider = Caching.getCachingProvider(CaffeineCachingProvider.class.getName()); return caffeineCachingProvider.getCacheManager(); } }
private void updateDictionaryIds(@NonNull Set dictionaries) { cacheManager.getCache(CACHE_NAME).removeAll(); dictionaries.stream() .map(Dictionary::getDictionaryId) .forEach(id -> { Cache<String, String> cache = cacheManager.getCache(CACHE_NAME); cache.put(id, Const.EMPTY); }); }
public @NonNull Set getAllowedIds() { Cache<String, String> cache = cacheManager.getCache(CACHE_NAME, String.class, String.class); return StreamSupport.stream(cache.spliterator(), false) .map(Cache.Entry::getKey) .collect(Collectors.toSet()); }