對此答案的一個非常重要的注意事項:如果您計劃更新這些(緩存)值,請不要忘記在存儲庫的save()和delete()中使用@CacheEvict。否則,您在更新新記錄時會遇到問題。
我已經實現了我的解決方案(帶的Ehcache)這樣(在庫):
CurrencyRepository.java: //定義緩存聲明
@Cacheable("currencyByIdentifier")
public Currency findOneByIdentifier(String identifier);
CacheConfiguration.java: //定義EhCache配置中的緩存
@Bean
public JCacheManagerCustomizer cacheManagerCustomizer() {
return cm -> {
cm.createCache("currencyByIdentifier", jcacheConfiguration);
cm.createCache("sourceSystemByIdentifier", jcacheConfiguration);
};
}
CurrencyRepository.java: //驅逐上保存並通過覆蓋默認方法
@Override
@CacheEvict("currencyByIdentifier")
<S extends Currency> S save(S currency);
@Override
@CacheEvict("currencyByIdentifier")
void delete(Currency currency);
刪除我希望幫助:)
緩存系統需要的內存資源。尤其是如果api頻繁調用。實際上你的情況還不夠清楚。如果響應是相同的,你爲什麼要調用api 15000次?爲什麼你決定這樣做?我認爲解決方案不正確,請描述你的情況,我們會嘗試提供解決方案。 – Sarkhan