试图将RedisTemplate bean与GenericJackson2JsonRedisSerializer一起使用,但是在调试时我注意到Spring Session使用了不同的RedisTemplate实例。
undefined
运行此命令时,Spring Session似乎对哈希值使用默认的JdkSerializationRedisSerializer,而不是所需的GenericJackson2JsonRedisSerializer。
删除console.log(variable1);
似乎使Spring使用了正确的RedisTempplate bean,但随后Spring Session根本没有连接。
使用Spring Session 1.3.3和spring-boot-starter-data -redis 1.5.13。
知道我缺少什么吗?
答案 0 :(得分:0)
您需要配置和注册名为sessionRedisTemplate
的RedisTemplate bean。这将覆盖RedisHttpSessionConfiguration
提供的默认RedisTemplate实例。
您应将其配置为:
@Bean
public RedisTemplate<Object, Object> sessionRedisTemplate() {
final RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
template.setConnectionFactory(jedisConnectionFactory());
return template;
}
答案 1 :(得分:0)
您只需要为春季会话覆盖默认的RedisSerializer
@Configuration public class RedisConfig {
@Bean(name="springSessionDefaultRedisSerializer")
public RedisSerializer serializer() {
return new GenericJackson2JsonRedisSerializer();
}