Как заставить Spring использовать StringRedisSerializer для хранения сеанса в Redis с помощью кода Java вместо файла конфигурации xml

Моя весна хранит сеанс в Redis, но ключ похож на "\xac\xed\x00\x05t\x00(spring:session". Теперь я хочу удалить странный префикс, и я знаю, что решение использует StringRedisSerializer в RedisTemplate, но мой код конфигурации ниже не работает:

@EnableRedisHttpSession()
@Configuration
public class SpringSessionConfig {

    @Autowired
    JedisConnectionFactory jedisConnectionFactory;

    StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(StandardCharsets.UTF_8);

    @Bean
    public StringRedisTemplate redisTemplate() {
        StringRedisTemplate redisTemplate = new StringRedisTemplate();
        redisTemplate.setConnectionFactory(this.jedisConnectionFactory);
        redisTemplate.setDefaultSerializer(this.stringRedisSerializer);
        redisTemplate.setHashKeySerializer(this.stringRedisSerializer);
        redisTemplate.setKeySerializer(this.stringRedisSerializer);
        return redisTemplate;
    }
}

Есть ответы, что использование файла конфигурации xml делает то же самое, но я предпочитаю использовать чистый код Java, кто-нибудь может помочь с приведенным выше кодом? Спасибо.


person seerhut    schedule 14.04.2016    source источник
comment
Что значит не работает? Какая у вас ошибка?   -  person dunni    schedule 14.04.2016
comment
@dunni Он по-прежнему добавляет \xac\xed\x00\x05t\x00 в ключ.   -  person seerhut    schedule 14.04.2016
comment
И что такое ключ, который вы предоставляете RestTemplate и сериализуете? Если это значение содержит байты, которые приводят к отображаемому префиксу, оно будет работать совершенно нормально.   -  person dunni    schedule 14.04.2016
comment
Кроме того, если бы вы могли опубликовать ссылку на такие конфигурации XML, мы могли бы сравнить, завершена ли ваша конфигурация или чего-то не хватает.   -  person dunni    schedule 14.04.2016
comment
Я использую spiring-session-redis для хранения данных сеанса, поэтому ключ redis является ключом в сеансе, я думаю, что это обычная строка. В другом сообщении была указана конфигурация xml: ссылка.   -  person seerhut    schedule 17.04.2016
comment
И я обнаружил еще одну странную вещь: я раньше нажимал кнопку «Выполнить» в Idea или Eclipse, чтобы запустить программу, и появлялся \xac... Только сейчас попробовал использовать mvn spring-boot:run в термине для его запуска, а префикс пропал!   -  person seerhut    schedule 17.04.2016