@Configuration public class RedisConfig { @Bean //下面这个方法的形参,spring在创建Bean的时候会自动从容器中取出,注入到该形参上 public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); //我们自己new 的对象没有数据库链接的基本信息 redisTemplate.setConnectionFactory(factory);//将我们new的RedisTemplate与容器中的Redis链接进行关联 //redis 里面虽然有5种数据类型,但是我们归根到底只使用String,但是 RedisTemplate<String,Object> , ObjectMapper objectMapper = new ObjectMapper(); // 所以需要将Object转成json字符串储存,我们一般都是设置全部 objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); //objectMapper 需要进行设置,哪些属性序列化 Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); //将jackson2JsonRedisSerializer与我们配置好的objectMapper进行关联 jackson2JsonRedisSerializer.setObjectMapper(objectMapper); //将来redisTemplate的值是 Object,序列化时使用 jackson2JsonRedisSerializer redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); //键和值都使用这个jackson2JsonRedisSerializer redisTemplate.setKeySerializer(jackson2JsonRedisSerializer); //将来开发中如果用到hash类型,那么也可以通过下面配置使用 redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); //后续配置交给spring容器 redisTemplate.afterPropertiesSet(); return redisTemplate; } }
redis缓存配置类
最新推荐文章于 2024-05-15 00:08:44 发布
文章介绍了如何在SpringBoot中配置RedisTemplate,以便使用Jackson2JsonRedisSerializer进行JSON序列化和反序列化,处理String到Object的转换,并设置了键值的序列化方式。
摘要由CSDN通过智能技术生成