1- package io .kimmking .cache ;
2-
3- import org .springframework .cache .CacheManager ;
4- import org .springframework .cache .annotation .CachingConfigurerSupport ;
5- import org .springframework .cache .interceptor .*;
6- import org .springframework .context .annotation .Bean ;
7- import org .springframework .context .annotation .Configuration ;
8- import org .springframework .data .redis .cache .RedisCacheConfiguration ;
9- import org .springframework .data .redis .cache .RedisCacheManager ;
10- import org .springframework .data .redis .connection .RedisConnectionFactory ;
11- import org .springframework .data .redis .core .RedisTemplate ;
12- import org .springframework .data .redis .serializer .GenericJackson2JsonRedisSerializer ;
13- import org .springframework .data .redis .serializer .RedisSerializationContext ;
14- import org .springframework .data .redis .serializer .StringRedisSerializer ;
15-
16- import javax .annotation .Resource ;
17-
18- import static org .springframework .data .redis .cache .RedisCacheConfiguration .defaultCacheConfig ;
19-
20- @ Configuration
21- public class CacheConfig extends CachingConfigurerSupport {
22-
23- @ Resource
24- private RedisConnectionFactory factory ;
25-
26- /**
27- * 自定义生成redis-key
28- *
29- * @return
30- */
31- @ Override
32- @ Bean
33- public KeyGenerator keyGenerator () {
34- return (o , method , objects ) -> {
35- StringBuilder sb = new StringBuilder ();
36- sb .append (o .getClass ().getName ()).append ("." );
37- sb .append (method .getName ()).append ("." );
38- for (Object obj : objects ) {
39- sb .append (obj .toString ()).append ("." );
40- }
41- //System.out.println("keyGenerator=" + sb.toString());
42- return sb .toString ();
43- };
44- }
45-
46- @ Bean
47- public RedisTemplate <Object , Object > redisTemplate () {
48- RedisTemplate <Object , Object > redisTemplate = new RedisTemplate <>();
49- redisTemplate .setConnectionFactory (factory );
50-
51- GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer ();
52-
53- redisTemplate .setKeySerializer (genericJackson2JsonRedisSerializer );
54- redisTemplate .setValueSerializer (genericJackson2JsonRedisSerializer );
55-
56- redisTemplate .setHashKeySerializer (new StringRedisSerializer ());
57- redisTemplate .setHashValueSerializer (genericJackson2JsonRedisSerializer );
58- return redisTemplate ;
59- }
60-
61- @ Bean
62- @ Override
63- public CacheResolver cacheResolver () {
64- return new SimpleCacheResolver (cacheManager ());
65- }
66-
67- @ Bean
68- @ Override
69- public CacheErrorHandler errorHandler () {
70- // 用于捕获从Cache中进行CRUD时的异常的回调处理器。
71- return new SimpleCacheErrorHandler ();
72- }
73-
74- @ Bean
75- @ Override
76- public CacheManager cacheManager () {
77- RedisCacheConfiguration cacheConfiguration =
78- defaultCacheConfig ()
79- .disableCachingNullValues ()
80- .serializeValuesWith (RedisSerializationContext .SerializationPair .fromSerializer (new GenericJackson2JsonRedisSerializer ()));
81- return RedisCacheManager .builder (factory ).cacheDefaults (cacheConfiguration ).build ();
82- }
83- }
1+ // package io.kimmking.cache;
2+ //
3+ // import org.springframework.cache.CacheManager;
4+ // import org.springframework.cache.annotation.CachingConfigurerSupport;
5+ // import org.springframework.cache.interceptor.*;
6+ // import org.springframework.context.annotation.Bean;
7+ // import org.springframework.context.annotation.Configuration;
8+ // import org.springframework.data.redis.cache.RedisCacheConfiguration;
9+ // import org.springframework.data.redis.cache.RedisCacheManager;
10+ // import org.springframework.data.redis.connection.RedisConnectionFactory;
11+ // import org.springframework.data.redis.core.RedisTemplate;
12+ // import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
13+ // import org.springframework.data.redis.serializer.RedisSerializationContext;
14+ // import org.springframework.data.redis.serializer.StringRedisSerializer;
15+ //
16+ // import javax.annotation.Resource;
17+ //
18+ // import static org.springframework.data.redis.cache.RedisCacheConfiguration.defaultCacheConfig;
19+ //
20+ // @Configuration
21+ // public class CacheConfig extends CachingConfigurerSupport {
22+ //
23+ // @Resource
24+ // private RedisConnectionFactory factory;
25+ //
26+ // /**
27+ // * 自定义生成redis-key
28+ // *
29+ // * @return
30+ // */
31+ // @Override
32+ // @Bean
33+ // public KeyGenerator keyGenerator() {
34+ // return (o, method, objects) -> {
35+ // StringBuilder sb = new StringBuilder();
36+ // sb.append(o.getClass().getName()).append(".");
37+ // sb.append(method.getName()).append(".");
38+ // for (Object obj : objects) {
39+ // sb.append(obj.toString()).append(".");
40+ // }
41+ // //System.out.println("keyGenerator=" + sb.toString());
42+ // return sb.toString();
43+ // };
44+ // }
45+ //
46+ // @Bean
47+ // public RedisTemplate<Object, Object> redisTemplate() {
48+ // RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
49+ // redisTemplate.setConnectionFactory(factory);
50+ //
51+ // GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
52+ //
53+ // redisTemplate.setKeySerializer(genericJackson2JsonRedisSerializer);
54+ // redisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer);
55+ //
56+ // redisTemplate.setHashKeySerializer(new StringRedisSerializer());
57+ // redisTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer);
58+ // return redisTemplate;
59+ // }
60+ //
61+ // @Bean
62+ // @Override
63+ // public CacheResolver cacheResolver() {
64+ // return new SimpleCacheResolver(cacheManager());
65+ // }
66+ //
67+ // @Bean
68+ // @Override
69+ // public CacheErrorHandler errorHandler() {
70+ // // 用于捕获从Cache中进行CRUD时的异常的回调处理器。
71+ // return new SimpleCacheErrorHandler();
72+ // }
73+ //
74+ // @Bean
75+ // @Override
76+ // public CacheManager cacheManager() {
77+ // RedisCacheConfiguration cacheConfiguration =
78+ // defaultCacheConfig()
79+ // .disableCachingNullValues()
80+ // .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
81+ // return RedisCacheManager.builder(factory).cacheDefaults(cacheConfiguration).build();
82+ // }
83+ // }
0 commit comments