我有一个带有Redis缓存的Spring Boot 2应用程序。直到我重写CacheManager bean为止,它都工作良好。

问题:以下配置属性被忽略(我无法再关闭缓存):

spring.cache.type=none

尽管according to the documentation应该起作用。

问题:如何使spring.cache.type=none工作?

有一种解决方法like this,但这远不是一个好的解决方案。

更多详细信息:这是我的配置:
@Configuration
public class CacheConfiguration {
    @Bean
    RedisCacheWriter redisCacheWriter(RedisConnectionFactory connectionFactory) {
        return RedisCacheWriter.lockingRedisCacheWriter(connectionFactory);
    }

    @Bean
    CacheManager cacheManager(RedisCacheWriter redisCacheWriter) {
        Map<String, RedisCacheConfiguration> ttlConfiguration = ...
        RedisCacheConfiguration defaultTtlConfiguration = ...
        return new RedisCacheManager(
                redisCacheWriter, defaultTtlConfiguration, ttlConfiguration
        );
    }
}

最佳答案

因为您是自己创建CacheManager的,所以如果要关闭它,还必须检查spring.cache.type

@Bean
@ConditionalOnExpression("${spring.cache.type} != 'none'")
CacheManager cacheManager(RedisCacheWriter redisCacheWriter) {

10-02 21:54