基于spring-context-5.2.12实现Spring cache生成key双冒号的处理

459 阅读1分钟

使用Redis的客户端spring cache的时候,会发现生成key中会多出一个冒号,而且有一个空节点的存在: 图片 查看源码可知,默认的生成key的策略就是通过两个冒号来拼接: 图片1 解决方案就是覆盖其默认的CacheKeyPrefix,这是一个函数接口。覆盖如下:

RedisCacheConfiguration config1 = RedisCacheConfiguration.defaultCacheConfig();  // 生成一个默认配置,通过config对象即可对缓存进行自定义配置
        config1 = config1
            .entryTtl(Duration.ofMinutes(120))     // 设置缓存的默认过期时间,也是使用Duration设置
                .disableCachingNullValues()        // 不缓存空值
                .computePrefixWith(name -> name + ":")//覆盖默认的构造key,否则会多出一个冒号
                .serializeValuesWith(SerializationPair.fromSerializer(jackson2JsonRedisSerializer));