SpringCache

Configuration

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  @Bean
public CacheManager cacheManager(RedisConnectionFactory factory) {
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
.serializeKeysWith(
RedisSerializationContext.SerializationPair.fromSerializer(RedisSerializer.string()))
.serializeValuesWith(
RedisSerializationContext.SerializationPair.fromSerializer(serializer()))
.disableCachingNullValues()
//replace double colons to single colons
// .computePrefixWith(cacheName -> cacheName+":")
.entryTtl(getDuration());

return RedisCacheManager
.builder(factory)
.cacheDefaults(config)
.build();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private Jackson2JsonRedisSerializer<Object> serializer() {
Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<Object>(
Object.class);
ObjectMapper mapper = new ObjectMapper();
// serialize range,field,get,set,modifier range,ANY contains private,public
mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
// serialize input type,class can't modifier with finael,such as String,Integer will throw exception
mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,
ObjectMapper.DefaultTyping.NON_FINAL);
serializer.setObjectMapper(mapper);
return serializer;
}

@Bean
public RedisTemplate<String, Object> template(RedisConnectionFactory factory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(factory);
redisTemplate.setKeySerializer(RedisSerializer.string());
redisTemplate.setValueSerializer(serializer());
return redisTemplate;
}

Usage

Cacheable

1
@Cacheable(value = "sys:dict:new:label", key = "#label",unless = "#result==null||#result.isEmpty()")
1
@Cacheable(value = CACHE_NAME, key = "#name+'-'+#dId+'-'+#page+'-'+#pageSize")

CacheEvict

1
@CacheEvict(value = "sys:dict:new:*", allEntries = true)
作者

Heng.Wang

发布于

2020-12-29

更新于

2023-09-20

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×