Java 在Spring boot Cacheable中从缓存检索数据

Java 在Spring boot Cacheable中从缓存检索数据,java,rest,spring-boot,spring-cache,Java,Rest,Spring Boot,Spring Cache,我想在服务类中实现两个方法。 一个方法将名称数组作为参数,检索其所有对象并将对象存储到缓存中 @Cacheable(value="HeaderConfig") public List<HeaderConfig> getHeadeConfigByFieldNames(String[] fieldNames) { List<HeaderConfig> hcList = new ArrayList<HeaderConfig>(); for (Stri

我想在服务类中实现两个方法。 一个方法将名称数组作为参数,检索其所有对象并将对象存储到缓存中

@Cacheable(value="HeaderConfig")
public List<HeaderConfig> getHeadeConfigByFieldNames(String[] fieldNames)
{
    List<HeaderConfig> hcList = new ArrayList<HeaderConfig>();
    for (String fieldName : fieldNames) {
        hcList.add(headerConfigRepository.getHeadeConfigByFieldName(fieldName));
    }
    return hcList;
}

请任何人建议如何处理这里。是否需要配置任何缓存管理器。

不需要第一种方法。相反,可以在循环中调用第二个方法。Spring将自动处理缓存和检索


只需确保第二个方法是在一个自动连接/Spring注入的Bean实例上调用的,它是直接在其中实现的,而不是通过Bean本身的某个方法来实现的。

这不是“缓存”的工作方式,这只是一个常规内存中的数据结构。您只需定期使用getter即可使用
@Cacheable
,Spring会为您插入/检索缓存。谢谢。所以在这里,我应该用纯java代码给出我自己的实现,只需从数据库中检索数据并假装缓存不存在。
@Cacheable(value="HeaderConfig" , key ="#fieldName")
 public HeaderConfig getHeadeConfigByFieldName(String fieldName)
{
    System.out.println("from database");
    HeaderConfig hc = null;
    // CODE TO BE IMPLEMENTED TO GET DATA FROM CACHE
    return hc;
}