Аннотация @CachePut не работает, но метод .put работаетJAVA

Программисты JAVA общаются здесь
Anonymous
Аннотация @CachePut не работает, но метод .put работает

Сообщение Anonymous »

Я попробовал аннотацию @CachePut в методе updateCategoryCacheForCountry, но она не сработала. Но
если делать это программно, получая кеш и используя .put, все работает нормально. В чем может быть причина?
Я использую Spring Cache. Метод вызывается методом @Scheduled.
// @CachePut(key = "#country")
public CacheCategories updateCategoryCacheForCountry(String country) {
CacheCategories categories = requestDirectus(country);

Cache categoriesCache = cacheManager.getCache("categories");
categoriesCache.put(country, categories);

return categories;
}

@Scheduled(fixedDelay = 300000) //5m
protected void updateCategories() {
String[] countries = {esConfig.getStoreArgentina(), esConfig.getStoreChile(), esConfig.getStoreParaguay(), esConfig.getStoreBolivia()};

for (String country : countries) {
updateCategoryCacheForCountry(country);
}
}

@EnableCaching
@Configuration
@EnableScheduling
public class CacheConfig {

@Bean // Configuramos el cache a utilizar
public CacheManager cacheManager() {
SimpleCacheManager cacheManager = new SimpleCacheManager();
cacheManager.setCaches(Arrays.asList(
new ConcurrentMapCache("categories"),
new ConcurrentMapCache("token")
));
return cacheManager;
}
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... d-put-does

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