| package com.doumee.core.utils.redis; | 
|   | 
| import com.fasterxml.jackson.annotation.JsonAutoDetect; | 
| import com.fasterxml.jackson.annotation.PropertyAccessor; | 
| import com.fasterxml.jackson.databind.ObjectMapper; | 
| import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; | 
| 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; | 
|   | 
| /** | 
|  * @author jiangping | 
|  * @date 2021-8-10 14:40:35 | 
|  * redis配置 | 
|  */ | 
| @Configuration | 
| public class RedisConfig { | 
|   | 
|     @Bean | 
|     @SuppressWarnings("all") | 
|     public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { | 
|         RedisTemplate<String, Object> template = new RedisTemplate<String, Object>(); | 
|         template.setConnectionFactory(factory); | 
|         Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); | 
|         ObjectMapper om = new ObjectMapper(); | 
|         om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); | 
|         om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL); | 
|         jackson2JsonRedisSerializer.setObjectMapper(om); | 
|         StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); | 
|         // key采用String的序列化方式 | 
|         template.setKeySerializer(stringRedisSerializer); | 
|         // hash的key也采用String的序列化方式 | 
|         template.setHashKeySerializer(stringRedisSerializer); | 
|         // value序列化方式采用jackson | 
|         template.setValueSerializer(jackson2JsonRedisSerializer); | 
|         // hash的value序列化方式采用jackson | 
|         template.setHashValueSerializer(jackson2JsonRedisSerializer); | 
|         template.afterPropertiesSet(); | 
|         return template; | 
|     } | 
| } | 
| /*@Configuration | 
| public class RedisConfig { | 
|   | 
|     *//** | 
|      * @param factory | 
|      * @return 自定义redisTemplate,自带的bean没有序列化器 | 
|      *//* | 
|     @Bean | 
|     public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { | 
|         RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); | 
|         redisTemplate.setConnectionFactory(factory); | 
|         redisTemplate.setKeySerializer(new StringRedisSerializer());//设置key的序列化器 | 
|         redisTemplate.setValueSerializer(new RedisConverter());//设置值的序列化器 | 
|         return redisTemplate; | 
|     } | 
|   | 
| }*/ |