| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package com.coffee.common.redis;
- import com.alibaba.fastjson.support.spring.FastJsonRedisSerializer;
- import com.fasterxml.jackson.annotation.JsonAutoDetect;
- import com.fasterxml.jackson.annotation.JsonTypeInfo;
- import com.fasterxml.jackson.annotation.PropertyAccessor;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
- import lombok.AllArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.cache.annotation.CachingConfigurerSupport;
- import org.springframework.cache.annotation.EnableCaching;
- 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;
- /**
- * redis基础配置
- *
- * @author Kevin
- */
- @Configuration
- @EnableCaching
- @Slf4j
- @AllArgsConstructor
- public class RedisConfig extends CachingConfigurerSupport {
- private final ObjectMapper objectMapper;
- @Bean
- public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
- RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
- // 使用Jackson2JsonRedisSerialize 替换默认序列化
- Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
- // ObjectMapper objectMapper = new ObjectMapper();
- // objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
- // objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.WRAPPER_ARRAY);
- jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
- // 设置value的序列化规则和 key的序列化规则
- redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
- redisTemplate.setKeySerializer(new StringRedisSerializer());
- redisTemplate.setHashKeySerializer(jackson2JsonRedisSerializer);
- redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
- redisTemplate.setDefaultSerializer(jackson2JsonRedisSerializer);
- redisTemplate.setEnableDefaultSerializer(true);
- redisTemplate.setConnectionFactory(connectionFactory);
- return redisTemplate;
- }
- }
|