在 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 本身中的某些方法。
我想在服务中实现两个方法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 本身中的某些方法。