【发布时间】:2019-05-24 09:39:30
【问题描述】:
我想缓存繁重的方法结果,但由于某种原因它不会存储在缓存中。
我曾尝试使用 spring 缓存,但它只在缓存整个 api 时才有效,而我只需要缓存其中的一部分。
@ResponseBody
public Person validateTest(@Param("name") String name) {
return cache(name);
}
@Cacheable(value = "getName", key = "#name")
public Person cache(String name) {
Person person = generateString(name);
return person;
}
public Person generateString(String name) {
System.out.println("generating");
Person person = new Person();
person.setName(name);
return person;
}
@Data
class Person implements Serializable {
private String name;
}
@EnableCaching 已启用
【问题讨论】:
-
您能解释一下上述解决方案是如何不起作用的吗?您是否有错误或只是每次仍在执行该方法而不是访问缓存?
-
每次运行都会执行
-
您是否启用了
@EnableCaching对您的配置类之一的缓存? -
我在 @SpringBootApplication 类中启用
标签: java spring-boot caching