Skip to content

Commit d3645d6

Browse files
committed
feat(#156): cacheConfig 설정
- cache를 사용하기 위해서 config설정을 하였습니다.
1 parent 0673bc4 commit d3645d6

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.insert.ioj.global.config;
2+
3+
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.fasterxml.jackson.databind.SerializationFeature;
5+
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
6+
import org.springframework.cache.CacheManager;
7+
import org.springframework.cache.annotation.EnableCaching;
8+
import org.springframework.context.annotation.Bean;
9+
import org.springframework.context.annotation.Configuration;
10+
import org.springframework.data.redis.cache.RedisCacheConfiguration;
11+
import org.springframework.data.redis.cache.RedisCacheManager;
12+
import org.springframework.data.redis.connection.RedisConnectionFactory;
13+
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
14+
import org.springframework.data.redis.serializer.RedisSerializationContext;
15+
import org.springframework.data.redis.serializer.StringRedisSerializer;
16+
17+
import java.time.Duration;
18+
19+
@Configuration
20+
@EnableCaching
21+
public class CacheConfig {
22+
@Bean
23+
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
24+
ObjectMapper objectMapper = new ObjectMapper();
25+
objectMapper.registerModule(new JavaTimeModule());
26+
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
27+
28+
GenericJackson2JsonRedisSerializer redisSerializer = new GenericJackson2JsonRedisSerializer(objectMapper);
29+
30+
RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
31+
.entryTtl(Duration.ofHours(3))
32+
.disableCachingNullValues()
33+
.serializeKeysWith(
34+
RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())
35+
)
36+
.serializeValuesWith(
37+
RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer)
38+
);
39+
40+
return RedisCacheManager.builder(redisConnectionFactory)
41+
.cacheDefaults(cacheConfiguration)
42+
.build();
43+
}
44+
}

0 commit comments

Comments
 (0)