Spring Boot2.X 自定义Redis的cacheManager,保存Json格式到Redis

编程知识 更新时间:2023-04-05 04:20:55

在自义定cacheManager方面,Spring Boot2.X 与Spring Boot1.X 有很大不同,

Spring Boot2 用的是

 按照它的样子,你也可以自定义一个cacheManager,

@Configuration
@ConfigurationProperties(prefix = "spring.cache.redis")
public class RedisCacheConfig {

    private Duration timeToLive = Duration.ZERO;
    public void setTimeToLive(Duration timeToLive) {
        this.timeToLive = timeToLive;
    }

    @Bean
    public CacheManager cacheManager(RedisConnectionFactory factory) {
        RedisSerializer<String> redisSerializer = new StringRedisSerializer();
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

        //解决查询缓存转换异常的问题
        ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(om);

        // 配置序列化(解决乱码的问题)
        RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
                .entryTtl(timeToLive)
                .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer))
                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer))
                .disableCachingNullValues();

        RedisCacheManager cacheManager = RedisCacheManager.builder(factory)
                .cacheDefaults(config)
                .build();
        return cacheManager;
    }

}
spring:
  cache:
    redis:
      timeToLive: 1000000 #毫秒

 这样操作缓存会直接把对象转换成Json格式。

 

 

更多推荐

Spring Boot2.X 自定义Redis的cacheManager,保存Json格式到Redis

本文发布于:2023-04-05 04:20:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/1cd67c35e523e99a69a196ce6180d3eb.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自定义   格式   Spring   Json   cacheManager

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 44742文章数
  • 14阅读数
  • 0评论数