RedisConfig.java 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package com.izouma.awesomeAdmin.config;
  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.boot.autoconfigure.AutoConfigureAfter;
  6. import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
  7. import org.springframework.context.annotation.Bean;
  8. import org.springframework.context.annotation.Configuration;
  9. import org.springframework.data.redis.connection.RedisConnectionFactory;
  10. import org.springframework.data.redis.core.RedisTemplate;
  11. import org.springframework.data.redis.repository.configuration.EnableRedisRepositories;
  12. import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
  13. import org.springframework.data.redis.serializer.StringRedisSerializer;
  14. @Configuration
  15. @AutoConfigureAfter(RedisAutoConfiguration.class)
  16. @EnableRedisRepositories
  17. public class RedisConfig {
  18. @Bean
  19. RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
  20. RedisTemplate<String, Object> template = new RedisTemplate<>();
  21. template.setConnectionFactory(redisConnectionFactory);
  22. //使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值
  23. Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer<>(Object.class);
  24. ObjectMapper mapper = new ObjectMapper();
  25. mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
  26. mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
  27. serializer.setObjectMapper(mapper);
  28. template.setValueSerializer(serializer);
  29. //使用StringRedisSerializer来序列化和反序列化redis的key值
  30. template.setKeySerializer(new StringRedisSerializer());
  31. template.setHashKeySerializer(new StringRedisSerializer());
  32. template.setHashValueSerializer(serializer);
  33. template.afterPropertiesSet();
  34. return template;
  35. }
  36. }