RedisConfig.java 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package com.gyee.cache.redis;
  2. import com.fasterxml.jackson.annotation.JsonAutoDetect;
  3. import com.fasterxml.jackson.annotation.PropertyAccessor;
  4. import com.fasterxml.jackson.databind.ObjectMapper;
  5. import org.springframework.context.annotation.Bean;
  6. import org.springframework.context.annotation.Configuration;
  7. import org.springframework.data.redis.connection.RedisConnectionFactory;
  8. import org.springframework.data.redis.core.RedisTemplate;
  9. import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
  10. import org.springframework.data.redis.serializer.StringRedisSerializer;
  11. /**
  12. /**
  13. *@ClassName RedisConfig
  14. *@Description TODO
  15. *@Author 谢生杰
  16. *@Date 2020/9/14 10:42
  17. *@Version 1.0
  18. **/
  19. @Configuration
  20. public class RedisConfig {
  21. @Bean
  22. @SuppressWarnings("all")
  23. public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
  24. RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
  25. template.setConnectionFactory(factory);
  26. Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
  27. ObjectMapper om = new ObjectMapper();
  28. om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
  29. om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
  30. jackson2JsonRedisSerializer.setObjectMapper(om);
  31. StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
  32. // key采用String的序列化方式
  33. template.setKeySerializer(stringRedisSerializer);
  34. // hash的key也采用String的序列化方式
  35. template.setHashKeySerializer(stringRedisSerializer);
  36. // value序列化方式采用jackson
  37. template.setValueSerializer(jackson2JsonRedisSerializer);
  38. // hash的value序列化方式采用jackson
  39. template.setHashValueSerializer(jackson2JsonRedisSerializer);
  40. template.afterPropertiesSet();
  41. return template;
  42. }
  43. }