问题描述:
在我们深入理解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(newGenericJackson2JsonRedisSerializer()));return RedisCacheManager.builder(factory).cacheDefaults(cacheConfiguration).build();
}
}
© 著作权归作者所有,转载或内容合作请联系作者
喜欢的朋友记得点赞、收藏、关注哦!!!