RedisConfig.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.uas.eis.utils;
  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.cache.CacheManager;
  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.cache.RedisCacheManager;
  11. import org.springframework.data.redis.connection.RedisConnectionFactory;
  12. import org.springframework.data.redis.core.RedisTemplate;
  13. import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
  14. import org.springframework.data.redis.serializer.StringRedisSerializer;
  15. /**
  16. * redis配置类
  17. *
  18. * @author cjx
  19. * @date 2020-5-21
  20. */
  21. @Configuration
  22. //@EnableCaching // 开启注解
  23. public class RedisConfig extends CachingConfigurerSupport {
  24. @Bean
  25. public CacheManager cacheManager(RedisTemplate<?, ?> redisTemplate) {
  26. return new RedisCacheManager(redisTemplate);
  27. }
  28. /**
  29. * key 序列号的要使用:StringRedisSerializer
  30. * @param redisConnectionFactory
  31. * @return
  32. */
  33. @Bean
  34. @SuppressWarnings("all")
  35. public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
  36. RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
  37. template.setConnectionFactory(factory);
  38. Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
  39. ObjectMapper om = new ObjectMapper();
  40. om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
  41. om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
  42. jackson2JsonRedisSerializer.setObjectMapper(om);
  43. StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
  44. // key采用String的序列化方式
  45. template.setKeySerializer(stringRedisSerializer);
  46. // hash的key也采用String的序列化方式
  47. template.setHashKeySerializer(stringRedisSerializer);
  48. // value序列化方式采用jackson
  49. template.setValueSerializer(jackson2JsonRedisSerializer);
  50. // hash的value序列化方式采用jackson
  51. template.setHashValueSerializer(jackson2JsonRedisSerializer);
  52. template.afterPropertiesSet();
  53. return template;
  54. }
  55. }