我正在寻找两件事:
@Cacheable(value = "complex-calc", condition = "#{${spring.profiles.active} != 'dev'}")
public String someBigCalculation(String input){
...
}
但我可以让它发挥作用。关于SO的问题有几个问题,但它们指的是XML配置或其他东西,但我使用的是Spring Boot 1.3.3,它使用了自动配置。
我不想让事情过于复杂。
默认情况下会自动检测和配置缓存类型。但是,您可以通过将spring.cache.type
添加到配置中来指定要使用的缓存类型。要禁用它,请将值设置为NONE
。
正如你想为特定的配置文件做的那样,将它添加到该配置文件application.properties
,在这种情况下修改application-dev.properties
并添加
spring.cache.type=NONE
这将禁用缓存。
对于你的第二个问题,做这样的事情:
编写一个方法来确定特定的配置文件是否处于活动状态(环境是您注入的环境)
boolean isProfileActive(String profile) {
return Arrays.asList(environment.getActiveProfiles()).contains(profile);
}
然后在可缓存注释中使用它作为你的spel条件