RedisConf.java 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.xintong.system.securityTools;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.alibaba.fastjson.serializer.JSONSerializableSerializer;
  5. import com.fasterxml.jackson.annotation.JsonAutoDetect;
  6. import com.fasterxml.jackson.annotation.PropertyAccessor;
  7. import com.fasterxml.jackson.databind.ObjectMapper;
  8. import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
  9. import org.springframework.cache.CacheManager;
  10. import org.springframework.cache.annotation.CachingConfigurerSupport;
  11. import org.springframework.cache.annotation.EnableCaching;
  12. import org.springframework.cache.interceptor.KeyGenerator;
  13. import org.springframework.context.annotation.Bean;
  14. import org.springframework.context.annotation.Configuration;
  15. import org.springframework.data.redis.cache.RedisCacheManager;
  16. import org.springframework.data.redis.connection.RedisConnectionFactory;
  17. import org.springframework.data.redis.core.RedisTemplate;
  18. import org.springframework.data.redis.core.StringRedisTemplate;
  19. import org.springframework.data.redis.serializer.RedisSerializer;
  20. import java.lang.reflect.Method;
  21. /**
  22. * 文件名:RedisConf
  23. * 版本信息:日期:2017/4/25 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
  24. */
  25. @Configuration
  26. @EnableCaching
  27. public class RedisConf extends CachingConfigurerSupport{
  28. @Bean
  29. public KeyGenerator keyGenerator(){
  30. return new KeyGenerator() {
  31. @Override
  32. public Object generate(Object target, Method method, Object... params) {
  33. StringBuilder sb = new StringBuilder();
  34. sb.append(target.getClass().getName());
  35. sb.append(method.getName());
  36. for (Object obj : params) {
  37. sb.append(obj.toString());
  38. }
  39. return sb.toString();
  40. }
  41. };
  42. }
  43. @Bean
  44. public CacheManager cacheManager(
  45. @SuppressWarnings("rawtypes") RedisTemplate redisTemplate) {
  46. return new RedisCacheManager(redisTemplate);
  47. }
  48. @Bean
  49. @SuppressWarnings("rawtypes")
  50. public RedisSerializer fastJson2JsonRedisSerializer() {
  51. return new FastJson2JsonRedisSerializer<Object>(Object.class);
  52. }
  53. @Bean
  54. @SuppressWarnings("rawtypes")
  55. public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory, RedisSerializer fastJson2JsonRedisSerializer) {
  56. StringRedisTemplate template = new StringRedisTemplate(factory);
  57. template.setValueSerializer(fastJson2JsonRedisSerializer);
  58. template.afterPropertiesSet();
  59. return template;
  60. }
  61. }