- Я настроил EHCache в файле @configuration
Ниже приведен файл конфигурации:
@EnableCaching
@Configuration
public class CacheClientConfig {
@Bean
public CacheManager cacheManager(){
return new EhCacheCacheManager(cacheManagerFactory().getObject());
}
@Bean
public EhCacheManagerFactoryBean cacheManagerFactory(){
EhCacheManagerFactoryBean bean = new EhCacheManagerFactoryBean();
bean.setConfigLocation(new ClassPathResource("ehcache.xml"));
bean.setShared(true);
return bean;
}
У меня есть другой класс под названием Adapter, в котором я совершил resttemplate.exchange(uri,entity,method,response)
вызов и получил response(partnerinfo)
в обслуживании.
После получения ответа от вызова API REST янужно сделать какую-то операцию в классе обслуживания, где я использовал @Cacheable(value = "partnersCache",key = "#apiKey")
, чтобы я не хотел делать дальнейшие вызовы вышеупомянутого вызова REST в течение некоторого времени, упомянутого в ehcache.xml
Класс обслуживания:
@Cacheable(value = "partnersCache",key = "#apiKey")
private List<PartnerInfo> checkPartnerInfo(HttpHeaders headers) throws Exception {
List<PartnerInfo> partners = new ArrayList<PartnerInfo>();
partners = getPartnerInfoAdapter.getPartnerInfo().getBody();
return partners ;
}
getPartnerInfoAdapter
класс:
restTemplate.exchange(builder.build().toUri(),HttpMethod.GET,entity,Object[].class);
ehcache.xml
Я использовал partnersCache в качестве имени кэша в ehcache.xml
, который настроенв конфигурационном файле
Но вызов будет часто пересылать вызов REST, не знаю, что я пропустил.
Заранее спасибо