package doumeemes.config.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; 
 | 
    } 
 | 
  
 | 
}*/ 
 |