我使用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
在请求的字段中指定条件的情况下,是否有任何方法可以实现相同目的
答案 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