SmartRedisConfig.java 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package net.lab1024.smartadmin.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.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.*;
  10. import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
  11. import org.springframework.data.redis.serializer.StringRedisSerializer;
  12. /**
  13. * [ redis配置 ]
  14. *
  15. * @author yandanyang
  16. * @version 1.0
  17. * @company 1024lab.net
  18. * @copyright (c) 2019 1024lab.netInc. All rights reserved.
  19. * @date
  20. * @since JDK1.8
  21. */
  22. @Configuration
  23. public class SmartRedisConfig {
  24. @Autowired
  25. private RedisConnectionFactory factory;
  26. @Bean
  27. public RedisTemplate<String, Object> redisTemplate() {
  28. Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class);
  29. ObjectMapper om = new ObjectMapper();
  30. om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
  31. om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
  32. jackson2JsonRedisSerializer.setObjectMapper(om);
  33. RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
  34. template.setConnectionFactory(factory);
  35. template.setKeySerializer(new StringRedisSerializer());
  36. template.setValueSerializer(jackson2JsonRedisSerializer);
  37. template.setHashKeySerializer(jackson2JsonRedisSerializer);
  38. template.setHashValueSerializer(jackson2JsonRedisSerializer);
  39. template.setDefaultSerializer(new StringRedisSerializer());
  40. template.afterPropertiesSet();
  41. return template;
  42. }
  43. @Bean
  44. public HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {
  45. return redisTemplate.opsForHash();
  46. }
  47. @Bean
  48. public ValueOperations<String, String> valueOperations(RedisTemplate<String, String> redisTemplate) {
  49. return redisTemplate.opsForValue();
  50. }
  51. @Bean
  52. public ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {
  53. return redisTemplate.opsForList();
  54. }
  55. @Bean
  56. public SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {
  57. return redisTemplate.opsForSet();
  58. }
  59. @Bean
  60. public ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {
  61. return redisTemplate.opsForZSet();
  62. }
  63. }