ОБНОВЛЕНИЕ:
Я более подробно рассмотрел этот вопрос.Исключение довольно ясно, что вызываемый компонент, он говорит, что компонент sessionRepository определен дважды.Если вы проверите классы, где они определены, и откуда они берутся, вы обнаружите, что один из них поступает из автоконфигуратора, а другой - из зависимости данных сеанса Redis.
На этом этапепохоже, вам нужно разрешить переопределение bean-компонента, что вы можете легко сделать, добавив это в bootstrap.yml :
spring:
main:
allow-bean-definition-overriding: true
Но если вы сделаете эту пару других исключенийс чем вам придется столкнутьсяЕсть причина, по которой ребята сделали эту опцию ложной по умолчанию.Вот пример исключения, которое вы можете получить:
2018-12-20 00:37:22.965 ERROR 3089 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisMessageListenerContainer' defined in class path resource org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.redis.listener.RedisMessageListenerContainer]: Factory method 'redisMessageListenerContainer' threw exception; nested exception is java.lang.IllegalStateException: @Bean method RedisHttpSessionConfiguration.sessionRepository called as bean reference for type [org.springframework.session.data.redis.RedisOperationsSessionRepository] but overridden by non-compatible bean instance of type [org.springframework.session.data.redis.ReactiveRedisOperationsSessionRepository]. Overriding bean of same name declared in: class path resource [org/springframework/boot/autoconfigure/session/RedisReactiveSessionConfiguration$SpringBootRedisWebSessionConfiguration.class]
Пожалуйста, поправьте меня, если я ошибаюсь.Я был бы очень признателен. Но когда вам нужна функция автоматической настройки загрузки Spring, вы просто не можете использовать Redis для хранения сеансов и их распространения на микросервисах.Это просто не работает вместе.В это трудно поверить, потому что должно быть что-то, что вы можете использовать в приложении Spring Boot 2.1.1, когда вы действительно не хотите аутентифицировать своего пользователя в каждом микросервисе.