RedisConfig.java 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package com.chinaitop.depot.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.beans.factory.annotation.Autowired;
  6. import org.springframework.context.annotation.Bean;
  7. import org.springframework.context.annotation.Configuration;
  8. import org.springframework.data.redis.connection.RedisConnectionFactory;
  9. import org.springframework.data.redis.core.HashOperations;
  10. import org.springframework.data.redis.core.ListOperations;
  11. import org.springframework.data.redis.core.RedisTemplate;
  12. import org.springframework.data.redis.core.SetOperations;
  13. import org.springframework.data.redis.core.ValueOperations;
  14. import org.springframework.data.redis.core.ZSetOperations;
  15. import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
  16. import org.springframework.data.redis.serializer.StringRedisSerializer;
  17. @Configuration
  18. public class RedisConfig {
  19. @Autowired
  20. private RedisConnectionFactory factory;
  21. @Bean
  22. public RedisTemplate<String, Object> redisTemplate() {
  23. Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class);
  24. ObjectMapper om = new ObjectMapper();
  25. om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
  26. om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
  27. jackson2JsonRedisSerializer.setObjectMapper(om);
  28. RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
  29. template.setConnectionFactory(factory);
  30. template.setKeySerializer(new StringRedisSerializer());
  31. template.setValueSerializer(jackson2JsonRedisSerializer);
  32. template.setHashKeySerializer(jackson2JsonRedisSerializer);
  33. template.setHashValueSerializer(jackson2JsonRedisSerializer);
  34. template.setDefaultSerializer(new StringRedisSerializer());
  35. template.afterPropertiesSet();
  36. return template;
  37. }
  38. @Bean
  39. public HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {
  40. return redisTemplate.opsForHash();
  41. }
  42. @Bean
  43. public ValueOperations<String, String> valueOperations(RedisTemplate<String, String> redisTemplate) {
  44. return redisTemplate.opsForValue();
  45. }
  46. @Bean
  47. public ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {
  48. return redisTemplate.opsForList();
  49. }
  50. @Bean
  51. public SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {
  52. return redisTemplate.opsForSet();
  53. }
  54. @Bean
  55. public ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {
  56. return redisTemplate.opsForZSet();
  57. }
  58. }