48 lines
2.1 KiB
Java
48 lines
2.1 KiB
Java
package com.landaiqing.wechat.redis;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
|
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
|
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
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.Jackson2JsonRedisSerializer;
|
|
import org.springframework.data.redis.serializer.RedisSerializer;
|
|
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
|
|
|
/**
|
|
* Redis的config处理
|
|
*
|
|
* @author: ChickenWing
|
|
* @date: 2023/10/28
|
|
*/
|
|
@Configuration
|
|
public class RedisConfig {
|
|
|
|
@Bean
|
|
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
|
|
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
|
|
RedisSerializer<String> redisSerializer = new StringRedisSerializer();
|
|
redisTemplate.setConnectionFactory(redisConnectionFactory);
|
|
redisTemplate.setKeySerializer(redisSerializer);
|
|
redisTemplate.setHashKeySerializer(redisSerializer);
|
|
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer());
|
|
redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer());
|
|
return redisTemplate;
|
|
}
|
|
|
|
private Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer() {
|
|
Jackson2JsonRedisSerializer<Object> jsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
|
|
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
|
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
|
|
jsonRedisSerializer.setObjectMapper(objectMapper);
|
|
return jsonRedisSerializer;
|
|
}
|
|
|
|
}
|