springboot2.0x 和springboot 1.0 整

2020-07-24  本文已影响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();
}

}

上一篇 下一篇

猜你喜欢

热点阅读