RedisConfig.java 1.7 KB

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