spring boot整合redis序列化
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
</dependency>
application.yml配置
spring:
redis:
host: localhost
port: 6379
password: ****
序列化配置
@Configuration
public class RedisConfig {
@Autowired
private RedisConnectionFactory redisConnectionFactory
;
@Bean
public RedisTemplate
<String, Object> redisTemplate() {
RedisTemplate
<String, Object> redisTemplate
= new RedisTemplate<>();
redisTemplate
.setConnectionFactory(redisConnectionFactory
);
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer
=
new Jackson2JsonRedisSerializer(Object
.class);
StringRedisSerializer stringRedisSerializer
= new StringRedisSerializer();
ObjectMapper objectMapper
= new ObjectMapper();
objectMapper
.setVisibility(PropertyAccessor
.ALL
, JsonAutoDetect
.Visibility
.ANY
);
objectMapper
.enableDefaultTyping(ObjectMapper
.DefaultTyping
.NON_FINAL
);
jackson2JsonRedisSerializer
.setObjectMapper(objectMapper
);
redisTemplate
.setKeySerializer(stringRedisSerializer
);
redisTemplate
.setValueSerializer(jackson2JsonRedisSerializer
);
redisTemplate
.setHashKeySerializer(stringRedisSerializer
);
redisTemplate
.setHashValueSerializer(jackson2JsonRedisSerializer
);
redisTemplate
.setEnableDefaultSerializer(true);
redisTemplate
.setDefaultSerializer(jackson2JsonRedisSerializer
);
return redisTemplate
;
}
}