Кэширование (Ehcache) не происходит для вызова API api в Springboot - PullRequest
0 голосов
/ 05 ноября 2019
  1. Я настроил 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, не знаю, что я пропустил.

Заранее спасибо

...