我正在使用 Spring Cache 抽象和具有以下缓存注释的服务。
这两种方法都将基于产品的 id 作为输入参数进行操作。 但是返回类型不同。一个返回一个可能与产品联系的可选值,另一个返回一个 boolean 值。
@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 来实现这一点。
关于java - Spring Cache 抽象 JDK 可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28996324/