Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 基于配置启用/禁用服务中特定方法的缓存_Spring_Caching_Spring Boot_Aop_Interceptor - Fatal编程技术网

Spring 基于配置启用/禁用服务中特定方法的缓存

Spring 基于配置启用/禁用服务中特定方法的缓存,spring,caching,spring-boot,aop,interceptor,Spring,Caching,Spring Boot,Aop,Interceptor,我们使用Spring的缓存抽象将缓存行为添加到我们的服务中 默认情况下,@Enablecaching annotation启用/禁用整个服务的缓存 @Cacheable注释已在所有方法上使用 但是,现在我们希望为某些端点/方法启用缓存,并为其他端点禁用缓存 有没有一种方法可以通过删除服务中添加的注释来实现这一点,比如拦截器/过滤器根据配置否决某些方法的缓存行为。一种解决方法是,您可以根据参数使您的方法具有缓存条件。缓存注释通过condition参数支持这种功能,该参数接受计算为true或fals

我们使用Spring的缓存抽象将缓存行为添加到我们的服务中

默认情况下,@Enablecaching annotation启用/禁用整个服务的缓存

@Cacheable注释已在所有方法上使用

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


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

一种解决方法是,您可以根据参数使您的方法具有缓存条件。缓存注释通过condition参数支持这种功能,该参数接受计算为true或false的SpEL表达式

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

如文件中所述

请添加您的代码/配置文件