I want to cache heavy method result, but I for some reason it would not store in cache.
I had tried to use spring cache but it only worked when caching whole api where I only need to cache part of it.
@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 is enabled