RedisConfig.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package cn.com.taiji.beidou.config;
  2. import cn.com.taiji.beidou.serializer.FastJson2JsonRedisSerializer;
  3. import com.fasterxml.jackson.annotation.JsonAutoDetect;
  4. import com.fasterxml.jackson.annotation.PropertyAccessor;
  5. import com.fasterxml.jackson.databind.ObjectMapper;
  6. import org.springframework.cache.annotation.CachingConfigurerSupport;
  7. import org.springframework.cache.annotation.EnableCaching;
  8. import org.springframework.context.annotation.Bean;
  9. import org.springframework.context.annotation.Configuration;
  10. import org.springframework.data.redis.connection.RedisConnectionFactory;
  11. import org.springframework.data.redis.core.RedisTemplate;
  12. import org.springframework.data.redis.serializer.StringRedisSerializer;
  13. /**
  14. * redis配置
  15. *
  16. * @author seat
  17. */
  18. @Configuration
  19. @EnableCaching
  20. public class RedisConfig extends CachingConfigurerSupport
  21. {
  22. @Bean
  23. @SuppressWarnings(value = { "unchecked", "rawtypes" })
  24. public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory)
  25. {
  26. RedisTemplate<Object, Object> template = new RedisTemplate<>();
  27. template.setConnectionFactory(connectionFactory);
  28. FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class);
  29. ObjectMapper mapper = new ObjectMapper();
  30. mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
  31. serializer.setObjectMapper(mapper);
  32. // 使用StringRedisSerializer来序列化和反序列化redis的key值
  33. template.setKeySerializer(new StringRedisSerializer());
  34. template.setValueSerializer(serializer);
  35. // Hash的key也采用StringRedisSerializer的序列化方式
  36. template.setHashKeySerializer(new StringRedisSerializer());
  37. template.setHashValueSerializer(serializer);
  38. template.afterPropertiesSet();
  39. return template;
  40. }
  41. }