正文

SpringBoot整合Redis实现序列化存储Java对象的操作方法(springboot整合redis缓存)万万没想到

文章摘要

这篇文章描述了一个使用Spring Boot和Redis的Java项目配置文件。代码中定义了一个RedisConfig的Bean,用于配置Redis数据源。核心内容包括: 1. 使用`@Configuration`注解的Redis配置类。 2. 在`@Bean`方法中,通过`RedisConnectionFactory`初始化RedisTemplate。 3. 配置Object到Object的序列化,使用了`Jackson2JsonRedisSerializer`和`ObjectMapper`。 4. 分别为key和value设置了序列化器,其中key使用`StringRedisSerializer`,value使用`Jackson2JsonRedisSerializer`。 总结来看,文章重点介绍了如何在Spring Boot项目中配置Redis数据源,实现对象到Redis的序列化和反序列化。

package com.zyxx.redistest.common; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; @Configuration public class RedisConfig { @Bean public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { // 配置redisTemplate RedisTemplate<Object, Object> redisTemplate=new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); // 设置序列化 Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer=new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper om=new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); jackson2JsonRedisSerializer.setObjectMapper(om); // key序列化 redisTemplate.setKeySerializer(new StringRedisSerializer()); // value序列化 redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); // Hash key序列化 redisTemplate.setHashKeySerializer(new StringRedisSerializer()); // Hash value序列化 redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); redisTemplate.afterPropertiesSet(); return redisTemplate; } }