4 changed files with 40 additions and 42 deletions
@ -1,45 +1,32 @@ |
|||||||
package com.depsystem.app.systemServer.config; |
package com.depsystem.app.systemServer.config; |
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonAutoDetect; |
|
||||||
import com.fasterxml.jackson.annotation.JsonTypeInfo; |
|
||||||
import com.fasterxml.jackson.annotation.PropertyAccessor; |
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper; |
|
||||||
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; |
|
||||||
import org.springframework.context.annotation.Bean; |
import org.springframework.context.annotation.Bean; |
||||||
import org.springframework.context.annotation.Configuration; |
import org.springframework.context.annotation.Configuration; |
||||||
import org.springframework.data.redis.connection.RedisConnectionFactory; |
import org.springframework.data.redis.connection.RedisConnectionFactory; |
||||||
import org.springframework.data.redis.core.RedisTemplate; |
import org.springframework.data.redis.core.RedisTemplate; |
||||||
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; |
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; |
||||||
import org.springframework.data.redis.serializer.RedisSerializer; |
import org.springframework.data.redis.serializer.RedisSerializer; |
||||||
import org.springframework.data.redis.serializer.StringRedisSerializer; |
|
||||||
|
|
||||||
import java.net.UnknownHostException; |
|
||||||
|
|
||||||
@Configuration |
@Configuration |
||||||
public class RedisConfig { |
public class RedisConfig { |
||||||
@Bean |
|
||||||
@SuppressWarnings("all") |
|
||||||
public RedisTemplate<String,Object> redisTemplate (RedisConnectionFactory redisConnectionFactory)throws UnknownHostException { |
|
||||||
RedisTemplate<String,Object> redis = new RedisTemplate<>(); |
|
||||||
redis.setConnectionFactory(redisConnectionFactory); |
|
||||||
|
|
||||||
Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class); |
|
||||||
ObjectMapper mapper = new ObjectMapper(); |
|
||||||
mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); |
|
||||||
// mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); 这个被弃用了,所以现在要用 activateDefaultTyping
|
|
||||||
mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); |
|
||||||
jackson2JsonRedisSerializer.setObjectMapper(mapper); |
|
||||||
|
|
||||||
RedisSerializer<String> stringRedisSerializer = new StringRedisSerializer(); |
@Bean |
||||||
// key采用String的序列化方式
|
public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory connectionFactory){ |
||||||
redis.setKeySerializer(stringRedisSerializer); |
//创建RedisTemplate对象
|
||||||
// hash的key也采用String的序列化方式
|
RedisTemplate<String, Object> template = new RedisTemplate<>(); |
||||||
redis.setHashKeySerializer(stringRedisSerializer); |
//设置连接工厂
|
||||||
// value序列化方式采用jackson
|
template.setConnectionFactory(connectionFactory); |
||||||
redis.setValueSerializer(jackson2JsonRedisSerializer); |
//创建JSON序列化工具
|
||||||
// hash的value序列化方式采用jackson
|
GenericJackson2JsonRedisSerializer jsonRedisSerializer=new GenericJackson2JsonRedisSerializer(); |
||||||
redis.setHashValueSerializer(jackson2JsonRedisSerializer); |
//设置Key的序列化
|
||||||
redis.afterPropertiesSet(); |
template.setKeySerializer(RedisSerializer.string()); |
||||||
return redis; |
template.setHashKeySerializer(RedisSerializer.string()); |
||||||
|
//设置value的序列化
|
||||||
|
template.setValueSerializer(jsonRedisSerializer); |
||||||
|
template.setHashValueSerializer(jsonRedisSerializer); |
||||||
|
//返回
|
||||||
|
return template; |
||||||
} |
} |
||||||
|
|
||||||
} |
} |
||||||
|
|||||||
Loading…
Reference in new issue