|
@@ -0,0 +1,67 @@
|
|
|
|
|
+package com.zhiqiyun.open.config;
|
|
|
|
|
+
|
|
|
|
|
+import com.alibaba.fastjson.parser.Feature;
|
|
|
|
|
+import com.alibaba.fastjson.serializer.SerializerFeature;
|
|
|
|
|
+import com.alibaba.fastjson.support.config.FastJsonConfig;
|
|
|
|
|
+import com.alibaba.fastjson.support.spring.FastJsonRedisSerializer;
|
|
|
|
|
+import org.springframework.context.annotation.Bean;
|
|
|
|
|
+import org.springframework.context.annotation.Configuration;
|
|
|
|
|
+import org.springframework.context.annotation.DependsOn;
|
|
|
|
|
+import org.springframework.data.redis.connection.RedisConnectionFactory;
|
|
|
|
|
+import org.springframework.data.redis.core.RedisTemplate;
|
|
|
|
|
+import org.springframework.data.redis.core.StringRedisTemplate;
|
|
|
|
|
+import org.springframework.data.redis.serializer.StringRedisSerializer;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * @author jtoms
|
|
|
|
|
+ */
|
|
|
|
|
+@Configuration
|
|
|
|
|
+public class RedisConfig {
|
|
|
|
|
+
|
|
|
|
|
+ @Bean
|
|
|
|
|
+ @DependsOn("redisConnectionFactory")
|
|
|
|
|
+ public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
|
|
|
|
|
+ FastJsonRedisSerializer<Object> fastJsonRedisSerializer = new FastJsonRedisSerializer<>(Object.class);
|
|
|
|
|
+
|
|
|
|
|
+ FastJsonConfig fastJsonConfig = fastJsonRedisSerializer.getFastJsonConfig();
|
|
|
|
|
+ fastJsonConfig.setFeatures(Feature.SupportAutoType);
|
|
|
|
|
+ fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteClassName);
|
|
|
|
|
+
|
|
|
|
|
+ RedisTemplate<String, Object> template = new RedisTemplate<>();
|
|
|
|
|
+
|
|
|
|
|
+ template.setConnectionFactory(redisConnectionFactory);
|
|
|
|
|
+
|
|
|
|
|
+ StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
|
|
|
|
|
+
|
|
|
|
|
+ // key采用String的序列化方式
|
|
|
|
|
+ template.setKeySerializer(stringRedisSerializer);
|
|
|
|
|
+ // hash的key也采用String的序列化方式
|
|
|
|
|
+ template.setHashKeySerializer(stringRedisSerializer);
|
|
|
|
|
+ // value序列化方式采用jackson
|
|
|
|
|
+ template.setValueSerializer(fastJsonRedisSerializer);
|
|
|
|
|
+ // hash的value序列化方式采用jackson
|
|
|
|
|
+ template.setHashValueSerializer(fastJsonRedisSerializer);
|
|
|
|
|
+ template.afterPropertiesSet();
|
|
|
|
|
+ return template;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Bean
|
|
|
|
|
+ public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory jedisConnectionFactory) {
|
|
|
|
|
+ StringRedisTemplate template = new StringRedisTemplate();
|
|
|
|
|
+
|
|
|
|
|
+ template.setConnectionFactory(jedisConnectionFactory);
|
|
|
|
|
+
|
|
|
|
|
+ StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
|
|
|
|
|
+ // key采用String的序列化方式
|
|
|
|
|
+ template.setKeySerializer(stringRedisSerializer);
|
|
|
|
|
+ // hash的key也采用String的序列化方式
|
|
|
|
|
+ template.setHashKeySerializer(stringRedisSerializer);
|
|
|
|
|
+ // value序列化方式采用jackson
|
|
|
|
|
+ template.setValueSerializer(stringRedisSerializer);
|
|
|
|
|
+ // hash的value序列化方式采用jackson
|
|
|
|
|
+ template.setHashValueSerializer(stringRedisSerializer);
|
|
|
|
|
+ template.afterPropertiesSet();
|
|
|
|
|
+ return template;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+}
|