diff --git a/src/main/java/com/glxp/api/config/RedisConfig.java b/src/main/java/com/glxp/api/config/RedisConfig.java index 4a1a2503..a2193104 100644 --- a/src/main/java/com/glxp/api/config/RedisConfig.java +++ b/src/main/java/com/glxp/api/config/RedisConfig.java @@ -15,6 +15,7 @@ import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.*; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; +import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import javax.annotation.Resource; @@ -46,8 +47,7 @@ public class RedisConfig extends CachingConfigurerSupport { * retemplate相关配置 * @param factory * @return - */ - @Bean + */ @Bean public RedisTemplate redisTemplate(RedisConnectionFactory factory) { RedisTemplate template = new RedisTemplate<>(); @@ -57,7 +57,7 @@ public class RedisConfig extends CachingConfigurerSupport { //使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值(默认使用JDK的序列化方式) Jackson2JsonRedisSerializer jacksonSeial = new Jackson2JsonRedisSerializer(Object.class); - ObjectMapper om = new ObjectMapper(); + ObjectMapper om = new JacksonConfig().jacksonObjectMapper(new Jackson2ObjectMapperBuilder()); // 指定要序列化的域,field,get和set,以及修饰符范围,ANY是都有包括private和public om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); // 指定序列化输入的类型,类必须是非final修饰的,final修饰的类,比如String,Integer等会跑出异常 @@ -76,6 +76,35 @@ public class RedisConfig extends CachingConfigurerSupport { return template; } +// @Bean +// public RedisTemplate redisTemplate(RedisConnectionFactory factory) { +// +// RedisTemplate template = new RedisTemplate<>(); +// // 配置连接工厂 +// template.setConnectionFactory(factory); +// +// //使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值(默认使用JDK的序列化方式) +// Jackson2JsonRedisSerializer jacksonSeial = new Jackson2JsonRedisSerializer(Object.class); +// +// ObjectMapper om = new ObjectMapper(); +// // 指定要序列化的域,field,get和set,以及修饰符范围,ANY是都有包括private和public +// om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); +// // 指定序列化输入的类型,类必须是非final修饰的,final修饰的类,比如String,Integer等会跑出异常 +// om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); +// jacksonSeial.setObjectMapper(om); +// +// // 值采用json序列化 +// template.setValueSerializer(jacksonSeial); +// //使用StringRedisSerializer来序列化和反序列化redis的key值 +// template.setKeySerializer(new StringRedisSerializer()); +// +// // 设置hash key 和value序列化模式 +// template.setHashKeySerializer(new StringRedisSerializer()); +// template.setHashValueSerializer(jacksonSeial); +// template.afterPropertiesSet(); +// +// return template; +// } /** * 对hash类型的数据操作