【发布时间】:2021-04-09 02:57:10
【问题描述】:
我有与 Redis 缓存集成的 Spring Boot 应用程序。必须为方法调用之一实现缓存。该方法参数是一个具有多个参数的对象,它是外部请求对象。该对象参数将针对每个请求也基于该参数而变化,并且该方法的输出值是变化的。我需要使用该请求对象字段/参数值创建一个缓存键。如何实现。
只有在方法参数是静态的时候才能使用SimpleKeyGenerator?
UserService.java
@Cacheable(value = "usercache", keyGenerator="customKeyGenerator")
public UserResponse getUserResp(User user){
//Some backend calls
return user
}
User.java
public class User {
private String firstname;
private String lastname;
private Integer age;
private Date dob;
private Address address;
// Another 10 params
}
在这个方法实现中,用户对象是动态的。我必须根据具有有效非空值的用户对象字段创建一个缓存键。如何实现。
【问题讨论】:
标签: spring-boot spring-data-redis