Spring Cache 缓存注解这样用,实在是太香了!( 二 )

  • 解析 name 参数,根据 # 字符串进行分割,获取缓存 key 名称以及缓存有效期 。
  • 接着我们修改下 CacheConfig 类的 cacheManager 方法用以使用 MyRedisCacheManager 类 。代码如下,
    @Beanpublic CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {return new MyRedisCacheManager(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory), defaultCacheConfig());}private RedisCacheConfiguration defaultCacheConfig() {return RedisCacheConfiguration.defaultCacheConfig().serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(keySerializer())).serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(valueSerializer())).computePrefixWith(name -> CACHE_PREFIX + name+ ":").entryTtl(Duration.ofSeconds(600));}最后我们修改下 @Cacheable 注解使用方式,在原有 value 属性的 configCache 值后添加 #600,单独标识缓存有效期 。代码如下,
    @Cacheable(value = https://www.isolves.com/it/cxkf/jiagou/2023-11-09/"configCache#600", key = "#root.methodName + '_' + #root.args[0]")@Overridepublic String getValueByKey(String key) {...}看下 getValueByKey 方法生成的 Redis 缓存 key 有效期是多久 。如下,
    Spring Cache 缓存注解这样用,实在是太香了!

    文章插图
    图片
    OK , 看到是 590 秒有效期后,我们就大功告成了,希望本文能对大家有所帮助




    推荐阅读