1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package com.usky.config.redis;
- import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
- import com.fasterxml.jackson.annotation.PropertyAccessor;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.cache.annotation.CachingConfigurerSupport;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
- import org.springframework.data.redis.core.RedisTemplate;
- import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
- import org.springframework.data.redis.serializer.RedisSerializer;
- import org.springframework.data.redis.serializer.StringRedisSerializer;
- import javax.annotation.Resource;
- /**
- * 开启缓存支持
- *
- * @Return:
- */
- @Slf4j
- @Configuration
- public class RedisConfig extends CachingConfigurerSupport {
- @Resource
- private LettuceConnectionFactory lettuceConnectionFactory;
- /**
- * RedisTemplate配置
- *
- * @param lettuceConnectionFactory
- * @return
- */
- @Bean
- public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory lettuceConnectionFactory) {
- log.info(" --- redis config init --- ");
- Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = jacksonSerializer();
- RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
- redisTemplate.setConnectionFactory(lettuceConnectionFactory);
- RedisSerializer<?> stringSerializer = new StringRedisSerializer();
- // key序列化
- redisTemplate.setKeySerializer(stringSerializer);
- // value序列化
- redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
- // Hash key序列化
- redisTemplate.setHashKeySerializer(stringSerializer);
- // Hash value序列化
- redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
- redisTemplate.afterPropertiesSet();
- return redisTemplate;
- }
- private Jackson2JsonRedisSerializer jacksonSerializer() {
- Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
- ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.setVisibility(PropertyAccessor.ALL, Visibility.ANY);
- objectMapper.enableDefaultTyping(DefaultTyping.NON_FINAL);
- jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
- return jackson2JsonRedisSerializer;
- }
- }
|