我正在使用 JCache 来缓存 Web 响应。缓存键包括以下字段:
- 控制器:字符串
- 动作:字符串
- 参数:数组
我创建了 ResponseKey 类并将其用作缓存键类型:
public class ResponseKey implements Serializable {
private String controller;
private String action;
private Object[] parameters;
@Override
public int hashCode() { // IMPL }
@Override
public boolean equals(Object obj) { // IMPL }
}
示例代码(工作正常):
JCache<ResponseKey, byte[]> cache = ...
ResponseKey key = new ResponseKey("category", "list", new Object[] { 1 });
cache.put(key, bytesContent);
另一种方法是使用 String 作为缓存键类型:
JCache<String, byte[]> cache = ...
String key = "/category/list/1";
cache.put(key, bytesContent);
由于 String 类型比 ResponseKey 类型更轻,用于序列化/反序列化。
我的问题是:我应该使用 String 键而不是 ResponseKey 键吗?