根据配置启用/禁用服务中特定方法的缓存

时间:2017-07-02 12:44:58

标签: spring caching spring-boot aop interceptor

我们正在使用Spring的缓存抽象来为我们的服务添加缓存行为。

默认情况下,@ Enablecaching注释可以启用/禁用整个服务的缓存。

@Cacheable注释已用于所有方法。

但是,现在我们要为某些端点/方法启用缓存并禁用其他端点的缓存

有没有办法通过删除服务中添加的注释来实现这一点,例如拦截器/过滤器根据配置否决某些方法的缓存行为。

1 个答案:

答案 0 :(得分:0)

解决此问题的方法您可以在参数的基础上使您的方法成为缓存条件。缓存注释通过condition参数支持此类功能,该参数采用被评估为true或false的SpEL表达式。

@Cacheable(cacheNames="book", condition="#cached == false")
public Book findBook(boolean cached)

如文档中所述。 https://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html