|
@@ -1,11 +1,5 @@
|
|
package com.qmth.boot.redis.config;
|
|
package com.qmth.boot.redis.config;
|
|
|
|
|
|
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
|
|
|
-import com.fasterxml.jackson.annotation.PropertyAccessor;
|
|
|
|
-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.redisson.Redisson;
|
|
import org.redisson.Redisson;
|
|
import org.redisson.api.RedissonClient;
|
|
import org.redisson.api.RedissonClient;
|
|
import org.redisson.client.codec.StringCodec;
|
|
import org.redisson.client.codec.StringCodec;
|
|
@@ -29,14 +23,8 @@ public class RedisAutoConfiguration {
|
|
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
|
|
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
|
|
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
|
|
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
|
|
redisTemplate.setConnectionFactory(redisConnectionFactory);
|
|
redisTemplate.setConnectionFactory(redisConnectionFactory);
|
|
- // 使用 GenericJackson2JsonRedisSerializer 替换默认序列化
|
|
|
|
- ObjectMapper mapper = new ObjectMapper();
|
|
|
|
- mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
|
|
|
|
- mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
|
|
|
|
- // 解决jackson2无法反序列化LocalDateTime的问题
|
|
|
|
- mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
|
|
|
- mapper.registerModule(new JavaTimeModule());
|
|
|
|
- GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(mapper);
|
|
|
|
|
|
+ GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(
|
|
|
|
+ JsonJacksonCodec.INSTANCE.getObjectMapper());
|
|
// 设置序列化规则
|
|
// 设置序列化规则
|
|
redisTemplate.setKeySerializer(RedisSerializer.string());
|
|
redisTemplate.setKeySerializer(RedisSerializer.string());
|
|
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
|
|
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
|
|
@@ -57,7 +45,7 @@ public class RedisAutoConfiguration {
|
|
config.useSingleServer().setAddress(prefix + redisProperties.getHost() + ":" + redisProperties.getPort())
|
|
config.useSingleServer().setAddress(prefix + redisProperties.getHost() + ":" + redisProperties.getPort())
|
|
.setDatabase(redisProperties.getDb()).setPassword(redisProperties.getPassword())
|
|
.setDatabase(redisProperties.getDb()).setPassword(redisProperties.getPassword())
|
|
.setTimeout((int) redisProperties.getTimeout().toMillis());
|
|
.setTimeout((int) redisProperties.getTimeout().toMillis());
|
|
- config.setCodec(new CompositeCodec(StringCodec.INSTANCE, StringCodec.INSTANCE, JsonJacksonCodec.INSTANCE));
|
|
|
|
|
|
+ config.setCodec(new CompositeCodec(StringCodec.INSTANCE, JsonJacksonCodec.INSTANCE, JsonJacksonCodec.INSTANCE));
|
|
return Redisson.create(config);
|
|
return Redisson.create(config);
|
|
}
|
|
}
|
|
}
|
|
}
|