Попытка использовать компонент RedisTemplate с GenericJackson2JsonRedisSerializer, но во время отладки я заметил, что Spring Session использует другой экземпляр RedisTemplate.
@Configuration
@EnableRedisHttpSession
public class RedisHttpSessionConfig extends
AbstractHttpSessionApplicationInitializer {
@Bean
public JedisConnectionFactory jedisConnectionFactory() {
return new JedisConnectionFactory();
}
@Bean
public RedisTemplate<Object, Object> redisTemplate() {
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;
}
@Bean
public HttpSessionEventPublisher httpSessionEventPublisher() {
return new HttpSessionEventPublisher();
}
При запуске Spring Session, похоже, использует JdkSerializationRedisSerializer по умолчанию для hashValues вместо требуемого GenericJackson2JsonRedisSerializer.
Удаление extends AbstractHttpSessionApplicationInitializer
, похоже, заставляет Spring использовать правильный RedisTempplate bean,но тогда Spring Session вообще не подключен.
Использование Spring Session 1.3.3 и spring-boot-starter-data -redis 1.5.13.
Любая идея, что яотсутствует?