java - Spring boot Cacheable中从缓存中检索数据

标签 java rest spring-boot spring-cache

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

@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 将自动处理缓存和检索。

只需确保在 Bean 的 Autowiring /Spring 注入(inject)实例上调用第二个方法,在该实例中直接实现第二个方法,而不是通过 bean 本身中的某些方法来调用。

关于java - Spring boot Cacheable中从缓存中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57296055/

相关文章:

软件包安装时更新了 Java 版本

java - 如何移动放置在容器底部的最小化组件?

java - Android,适配器中的共享首选项

java - Spring:同一请求中的JSON数据和文件

java - JPA单表继承: Not a managed type

java - 为什么 completablefuture 不记录异常?

java - 为所有 404 响应创建 servlet 过滤器

java - 即使资源不应该存在也能得到响应

java - 是否能够在构建过程中将 REST 端点标记为忽略?

spring - Zuul Ribbon 异常总是返回 500 响应