|
@@ -1,58 +1,58 @@
|
|
|
-package com.sckw.freight.config;
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
|
|
|
|
-import com.fasterxml.jackson.annotation.PropertyAccessor;
|
|
|
|
|
-import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
-import com.fasterxml.jackson.databind.SerializationFeature;
|
|
|
|
|
-import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
|
|
|
|
|
-import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
|
|
|
|
-import org.springframework.context.annotation.Bean;
|
|
|
|
|
-import org.springframework.context.annotation.Configuration;
|
|
|
|
|
-import org.springframework.data.redis.connection.RedisConnectionFactory;
|
|
|
|
|
-import org.springframework.data.redis.core.RedisTemplate;
|
|
|
|
|
-import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
|
|
|
|
|
-import org.springframework.data.redis.serializer.StringRedisSerializer;
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * 注入RedisTemplate<String,Object>
|
|
|
|
|
- */
|
|
|
|
|
-@Configuration
|
|
|
|
|
-public class RedisConfig {
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * jackson序列化方式的redisTemplate
|
|
|
|
|
- *
|
|
|
|
|
- * @param redisConnectionFactory
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- @Bean
|
|
|
|
|
- public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
|
|
|
|
|
- RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
|
|
|
|
|
- redisTemplate.setConnectionFactory(redisConnectionFactory);
|
|
|
|
|
- // 设置值(value)的序列化采用jackson
|
|
|
|
|
- redisTemplate.setValueSerializer(serializer());
|
|
|
|
|
- redisTemplate.setHashValueSerializer(serializer());
|
|
|
|
|
-
|
|
|
|
|
- // 设置键(key)的序列化采用StringRedisSerializer。
|
|
|
|
|
- redisTemplate.setKeySerializer(new StringRedisSerializer());
|
|
|
|
|
- redisTemplate.setHashKeySerializer(new StringRedisSerializer());
|
|
|
|
|
- redisTemplate.afterPropertiesSet();
|
|
|
|
|
- return redisTemplate;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- private Jackson2JsonRedisSerializer<Object> serializer() {
|
|
|
|
|
- // 使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值
|
|
|
|
|
- ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
|
- // 解决jackson2无法序列化LocalDateTime问题
|
|
|
|
|
- objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
|
|
|
|
- objectMapper.registerModule(new JavaTimeModule());
|
|
|
|
|
- // 指定要序列化的域,field,get和set,以及修饰符范围,ANY是都有包括private和public
|
|
|
|
|
- objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
|
|
|
|
|
-
|
|
|
|
|
- // 指定序列化输入的类型,类必须是非final修饰的,final修饰的类,比如String,Integer等会跑出异常
|
|
|
|
|
- objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
|
|
|
|
|
- return new Jackson2JsonRedisSerializer<>(objectMapper, Object.class);
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
|
|
+//package com.sckw.freight.config;
|
|
|
|
|
+//
|
|
|
|
|
+//
|
|
|
|
|
+//import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
|
|
|
|
+//import com.fasterxml.jackson.annotation.PropertyAccessor;
|
|
|
|
|
+//import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
+//import com.fasterxml.jackson.databind.SerializationFeature;
|
|
|
|
|
+//import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
|
|
|
|
|
+//import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
|
|
|
|
+//import org.springframework.context.annotation.Bean;
|
|
|
|
|
+//import org.springframework.context.annotation.Configuration;
|
|
|
|
|
+//import org.springframework.data.redis.connection.RedisConnectionFactory;
|
|
|
|
|
+//import org.springframework.data.redis.core.RedisTemplate;
|
|
|
|
|
+//import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
|
|
|
|
|
+//import org.springframework.data.redis.serializer.StringRedisSerializer;
|
|
|
|
|
+//
|
|
|
|
|
+///**
|
|
|
|
|
+// * 注入RedisTemplate<String,Object>
|
|
|
|
|
+// */
|
|
|
|
|
+//@Configuration
|
|
|
|
|
+//public class RedisConfig {
|
|
|
|
|
+//
|
|
|
|
|
+// /**
|
|
|
|
|
+// * jackson序列化方式的redisTemplate
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param redisConnectionFactory
|
|
|
|
|
+// * @return
|
|
|
|
|
+// */
|
|
|
|
|
+// @Bean
|
|
|
|
|
+// public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
|
|
|
|
|
+// RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
|
|
|
|
|
+// redisTemplate.setConnectionFactory(redisConnectionFactory);
|
|
|
|
|
+// // 设置值(value)的序列化采用jackson
|
|
|
|
|
+// redisTemplate.setValueSerializer(serializer());
|
|
|
|
|
+// redisTemplate.setHashValueSerializer(serializer());
|
|
|
|
|
+//
|
|
|
|
|
+// // 设置键(key)的序列化采用StringRedisSerializer。
|
|
|
|
|
+// redisTemplate.setKeySerializer(new StringRedisSerializer());
|
|
|
|
|
+// redisTemplate.setHashKeySerializer(new StringRedisSerializer());
|
|
|
|
|
+// redisTemplate.afterPropertiesSet();
|
|
|
|
|
+// return redisTemplate;
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+//
|
|
|
|
|
+// private Jackson2JsonRedisSerializer<Object> serializer() {
|
|
|
|
|
+// // 使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值
|
|
|
|
|
+// ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
|
+// // 解决jackson2无法序列化LocalDateTime问题
|
|
|
|
|
+// objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
|
|
|
|
+// objectMapper.registerModule(new JavaTimeModule());
|
|
|
|
|
+// // 指定要序列化的域,field,get和set,以及修饰符范围,ANY是都有包括private和public
|
|
|
|
|
+// objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
|
|
|
|
|
+//
|
|
|
|
|
+// // 指定序列化输入的类型,类必须是非final修饰的,final修饰的类,比如String,Integer等会跑出异常
|
|
|
|
|
+// objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
|
|
|
|
|
+// return new Jackson2JsonRedisSerializer<>(objectMapper, Object.class);
|
|
|
|
|
+// }
|
|
|
|
|
+//}
|