在 Spring 引导缓存中从缓存中检索数据

Retrieving Data from Cache in Spring boot Cacheable

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

@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;
}

另一种方法将名称作为参数,它应该从缓存的记录中获取对象,这在以前的方法中已经完成。

@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;
}

请任何人在这里建议如何处理。我需要配置任何缓存管理器吗?

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

只要确保第二个方法是在 autowired/Spring 注入的 Bean 实例上调用的,它直接在其中实现,而不是通过 bean 本身中的某些方法。