|
|
@ -1,7 +1,8 @@ |
|
|
|
package kr.co.palnet.kac.app.config; |
|
|
|
package kr.co.palnet.kac.app.config; |
|
|
|
|
|
|
|
|
|
|
|
import java.time.Duration; |
|
|
|
import com.fasterxml.jackson.annotation.JsonTypeInfo; |
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper; |
|
|
|
|
|
|
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; |
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
import org.springframework.cache.CacheManager; |
|
|
|
import org.springframework.cache.CacheManager; |
|
|
|
import org.springframework.cache.annotation.EnableCaching; |
|
|
|
import org.springframework.cache.annotation.EnableCaching; |
|
|
@ -16,9 +17,7 @@ import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSeriali |
|
|
|
import org.springframework.data.redis.serializer.RedisSerializationContext; |
|
|
|
import org.springframework.data.redis.serializer.RedisSerializationContext; |
|
|
|
import org.springframework.data.redis.serializer.StringRedisSerializer; |
|
|
|
import org.springframework.data.redis.serializer.StringRedisSerializer; |
|
|
|
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.annotation.JsonTypeInfo; |
|
|
|
import java.time.Duration; |
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper; |
|
|
|
|
|
|
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Configuration |
|
|
|
@Configuration |
|
|
|
@EnableCaching |
|
|
|
@EnableCaching |
|
|
@ -26,13 +25,13 @@ public class RedisCacheConfig { |
|
|
|
|
|
|
|
|
|
|
|
@Value("${spring.data.redis.host}") |
|
|
|
@Value("${spring.data.redis.host}") |
|
|
|
private String redisHost; |
|
|
|
private String redisHost; |
|
|
|
|
|
|
|
|
|
|
|
@Value("${spring.data.redis.port}") |
|
|
|
@Value("${spring.data.redis.port}") |
|
|
|
private int redisPort; |
|
|
|
private int redisPort; |
|
|
|
|
|
|
|
|
|
|
|
@Value("${spring.data.redis.password}") |
|
|
|
@Value("${spring.data.redis.password}") |
|
|
|
private String redisPwd; |
|
|
|
private String redisPwd; |
|
|
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
@Bean |
|
|
|
public RedisConnectionFactory redisConnectionFactory() { |
|
|
|
public RedisConnectionFactory redisConnectionFactory() { |
|
|
|
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration(); |
|
|
|
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration(); |
|
|
@ -42,7 +41,7 @@ public class RedisCacheConfig { |
|
|
|
LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(redisStandaloneConfiguration); |
|
|
|
LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(redisStandaloneConfiguration); |
|
|
|
return lettuceConnectionFactory; |
|
|
|
return lettuceConnectionFactory; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// @Bean
|
|
|
|
// @Bean
|
|
|
|
// public RedisCacheManager redisCacheManager(RedisConnectionFactory connectionFactory) {
|
|
|
|
// public RedisCacheManager redisCacheManager(RedisConnectionFactory connectionFactory) {
|
|
|
|
// // local date time 역직렬화 위해 추가 코드
|
|
|
|
// // local date time 역직렬화 위해 추가 코드
|
|
|
@ -81,7 +80,7 @@ public class RedisCacheConfig { |
|
|
|
// .cacheDefaults(configuration)
|
|
|
|
// .cacheDefaults(configuration)
|
|
|
|
// .withInitialCacheConfigurations(cacheConfigurations).build();
|
|
|
|
// .withInitialCacheConfigurations(cacheConfigurations).build();
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
@Bean |
|
|
|
public CacheManager redisCacheManager(RedisConnectionFactory cf) { |
|
|
|
public CacheManager redisCacheManager(RedisConnectionFactory cf) { |
|
|
|
ObjectMapper objectMapper = new ObjectMapper(); |
|
|
|
ObjectMapper objectMapper = new ObjectMapper(); |
|
|
@ -89,7 +88,7 @@ public class RedisCacheConfig { |
|
|
|
objectMapper.activateDefaultTyping(objectMapper.getPolymorphicTypeValidator(), |
|
|
|
objectMapper.activateDefaultTyping(objectMapper.getPolymorphicTypeValidator(), |
|
|
|
ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); |
|
|
|
ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); |
|
|
|
GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(objectMapper); |
|
|
|
GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(objectMapper); |
|
|
|
|
|
|
|
|
|
|
|
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig() |
|
|
|
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig() |
|
|
|
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())) |
|
|
|
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())) |
|
|
|
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(genericJackson2JsonRedisSerializer)) |
|
|
|
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(genericJackson2JsonRedisSerializer)) |
|
|
@ -97,5 +96,5 @@ public class RedisCacheConfig { |
|
|
|
|
|
|
|
|
|
|
|
return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(cf).cacheDefaults(redisCacheConfiguration).build(); |
|
|
|
return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(cf).cacheDefaults(redisCacheConfiguration).build(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |