更新Redis配置

This commit is contained in:
阿沐 2024-04-01 09:51:32 +08:00
parent 18307a2312
commit f7e1d109fe

View File

@ -1,9 +1,14 @@
package net.maku.framework.common.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
/**
@ -15,6 +20,15 @@ import org.springframework.data.redis.serializer.RedisSerializer;
@Configuration
public class RedisConfig {
public GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
objectMapper.registerModule(new JavaTimeModule());
objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
return new GenericJackson2JsonRedisSerializer(objectMapper);
}
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
@ -23,10 +37,12 @@ public class RedisConfig {
template.setHashKeySerializer(RedisSerializer.string());
// Value HashValue使用Json序列化
template.setValueSerializer(RedisSerializer.json());
template.setHashValueSerializer(RedisSerializer.json());
template.setValueSerializer(genericJackson2JsonRedisSerializer());
template.setHashValueSerializer(genericJackson2JsonRedisSerializer());
template.setConnectionFactory(factory);
template.afterPropertiesSet();
return template;
}
}