получение исключения:org.springframework.data.redis.connection.Повторное подключение.getConfig(Ljava/lang/String;)Ljava/утилита/Список;

#redis

#redis

Вопрос:

Я пытаюсь использовать Redis в приложении spring boot для сеанса, добавляя зависимости, такие как:

 <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
   <version>1.5.9.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session</artifactId>
    <version>1.3.3.RELEASE</version>
</dependency>
  

И код для Redis похож:

 package com.dci.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import
org.springframework.data.redis.serializer.GenericToStringSerializer;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
import org.springframework.session.web.context.AbstractHttpSessionApplicationInitializer;


@Configuration
@ComponentScan("com.dci")
@EnableRedisHttpSession
public class RedisConfig extends AbstractHttpSessionApplicationInitializer {

    @Bean
    JedisConnectionFactory jedisConnectionFactory() {
        JedisConnectionFactory factory = new JedisConnectionFactory();

        return factory;
    }

    @Bean
    public RedisTemplate<String, Object> redisTemplate() {
        final RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
        template.setConnectionFactory(jedisConnectionFactory());

        template.setValueSerializer(new GenericToStringSerializer<Object>(Object.class));
        return template;
    }
}
  

Комментарии:

1. Отформатировал код

2. У меня такая же проблема. Вы нашли решение?

Ответ №1:

Компоненты JedisConnectionFactory и RedisTemplate не нужны при загрузке Spring, но в вашем файле «Spring Security Config» добавьте:

      @Bean
     public HttpSessionStrategy httpSessionStrategy() {
         return new HeaderHttpSessionStrategy();
     }
  

В pom добавьте следующие зависимости:

 <! - Spring Session ->
<Dependency>
  <GroupId> org.springframework.session </ groupId>
  <ArtifactId> spring-session </ artifactId>
  <Version> 1.3.5.RELEASE </ version>
</ Dependency>

<! - redis server ->
<Dependency>
  <GroupId> org.springframework.data </ groupId>
  <ArtifactId> spring-data-redis </ artifactId>
  </ Dependency>
<Dependency>
  <GroupId> redis.clients </ groupId>
  <ArtifactId> Jedis </ artifactId>
</ Dependency>
  

В вашем файле конфигурации (es. application.properties) добавьте:
spring.session.store-type = нет

Spring Boot сделает все остальное.