请求字段上的@Cacheable条件缓存

时间:2018-08-24 20:57:05

标签: java spring spring-data

我使用spring @Cacheable进行缓存,如下所示:

@Cacheable
public Response mycall(Request request)

现在,我希望仅在request.getId()!= 3,其中getId()时才缓存此方法调用 是Request类中的公共获取方法。

我看到了人们在unless中指定了@Cacheable条件的代码,但是我看到了仅在方法的响应而不是在请求上指定条件。参考:How do I tell Spring cache not to cache null value in @Cacheable annotation

在请求的字段中指定条件的情况下,是否有任何方法可以实现相同目的

1 个答案:

答案 0 :(得分:0)

您尝试过condition属性吗?

//It will cache only if the actor's age is more than 20. Here actor is the input parameter.
@Cacheable(value="movies", key="#actor.name", condition="#actor.age > 20")
public List<movie> getMovies(Actor actor) ...

请参见ttps://www.codelooru.com/2017/03/spring-cache-part-3-conditional-cache.html