美文网首页
springboot2.0x 和springboot 1.0 整

springboot2.0x 和springboot 1.0 整

作者: 周山 | 来源:发表于2020-07-24 18:22 被阅读0次

问题描述:

在我们深入理解springboot2.0x的缓存机制的时候,发现在springboot1.0 和springboot2.0 中默认的序列化都是使用的jdk的 Serializer 实现这个接口,jdk自带的序列化方法,由此我们需要自己去创建自定义的RedisCacheManager配置类并将自定义的bean组件加入到spring容器中,实现cache的json格式序列化到redis。

解决思路

在springboot1.0中如果向自定义我们直接创建cachemanager 然后传入redistemple模板对象, 就可以实现 redistemple 模板对象中定制序列化。
但是在springboot2.0中,因为RedisCacheManager的构造方式已经发生了改变,我们需要改变以前的繁杂方式,使用统一的模板进行操作。
直接粘贴以下代码,实现自定义的RedisCacheManager配置管理,使得数据以json的形式保存到redis中。

@Configuration
public class MyRedisConfig {

@Bean
public CacheManager cacheManager(RedisConnectionFactory factory) {
    RedisCacheConfiguration cacheConfiguration =
            RedisCacheConfiguration.defaultCacheConfig()
                    // 设置缓存管理器管理的缓存的默认过期时间
                    .entryTtl(Duration.ofDays(1))
                    // 不缓存空值
                    .disableCachingNullValues()
                    .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new
                            GenericJackson2JsonRedisSerializer()));
    return RedisCacheManager.builder(factory).cacheDefaults(cacheConfiguration).build();
}

}

相关文章

网友评论

      本文标题:springboot2.0x 和springboot 1.0 整

      本文链接:https://www.haomeiwen.com/subject/gidslktx.html