Spring 缓存抽象 JDK 可选
Spring Cache abstraction JDK Optional
我正在使用 Spring 缓存抽象和具有以下缓存注释的服务。
这两种方法都将以商品id作为输入参数进行操作。
但是 return 类型不同。一个是 return 可能与产品联系的可选,另一个 return 是一个布尔值。
@Cacheable(value = PRODUCTS_CACHE)
public Optional<Product> get(long id) {
return Optional.ofNullable(productRepository.findOne(id));
}
@Cacheable(value = PRODUCTS_CACHE)
public boolean exists(long id) {
return productRepository.exists(id);
}
1) 这会按预期工作吗?
2) Spring 缓存抽象是否适用于此?
您应该使用不同的缓存,否则它将无法工作。您可以使用具有不同键名的相同缓存,但由于方法参数相同,因此您必须再次借助 SpEl。
我正在使用 Spring 缓存抽象和具有以下缓存注释的服务。
这两种方法都将以商品id作为输入参数进行操作。 但是 return 类型不同。一个是 return 可能与产品联系的可选,另一个 return 是一个布尔值。
@Cacheable(value = PRODUCTS_CACHE)
public Optional<Product> get(long id) {
return Optional.ofNullable(productRepository.findOne(id));
}
@Cacheable(value = PRODUCTS_CACHE)
public boolean exists(long id) {
return productRepository.exists(id);
}
1) 这会按预期工作吗? 2) Spring 缓存抽象是否适用于此?
您应该使用不同的缓存,否则它将无法工作。您可以使用具有不同键名的相同缓存,但由于方法参数相同,因此您必须再次借助 SpEl。