Я использовал это руководство для настройки данных весенней сессии с помощью mongodb
https://docs.spring.io/spring-session-data-mongodb/docs/2.1.1.RELEASE/reference/htmlsingle/#introduction
Однако у меня возникли проблемы с настройкой.Я использую Mongodb с загрузкой Spring и пытаюсь настроить время сеанса и имя сеанса для веб-приложения загрузки Spring, но по умолчанию оно остается равным 30 минутам, а имя коллекции в mongodb по-прежнему равно «session»
Это то, что я пробовал:
Добавил их в application.properties:
server.session.timeout=1
spring.session.mongodb.collection-name=TestSESSIONS
и этот
server.servlet.session.timeout=60s
spring.session.mongodb.collection-name=TestSESSIONS
ни один из этих конфигов не работает
Я просмотрел URL общих свойств приложения для mongodb, но ничего из этого не помогло настроить время сеанса и имя коллекции для mongodb.
После нескольких часов исследованийПохоже, что при весенней загрузке с этим "org.springframework.boot.autoconfigure"
используется какая-то автоконфигурация, поэтому я добавил это в мои application.properties
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
, чтобы отключить автоконфигурирование.
но теперь он просто выдаст мне эту ошибку:
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of method mongoSessionRepository in org.springframework.session.data.mongo.config.annotation.web.http.MongoHttpSessionConfiguration required a bean of type 'org.springframework.data.mongodb.core.MongoOperations' that could not be found.
The following candidates were found but could not be injected:
- Bean method 'mongoTemplate' in 'MongoDataAutoConfiguration' not loaded because AnyNestedCondition 0 matched 2 did not; NestedCondition on MongoDataAutoConfiguration.AnyMongoClientAvailable.FallbackClientAvailable @ConditionalOnBean (types: com.mongodb.client.MongoClient; SearchStrategy: all) did not find any beans of type com.mongodb.client.MongoClient; NestedCondition on MongoDataAutoConfiguration.AnyMongoClientAvailable.PreferredClientAvailable @ConditionalOnBean (types: com.mongodb.MongoClient; SearchStrategy: all) did not find any beans of type com.mongodb.MongoClient
Action:
Consider revisiting the entries above or defining a bean of type 'org.springframework.data.mongodb.core.MongoOperations' in your configuration.
это @bean из руководства по spring.io 'mongoSessionConverter'
сверху ссылка
этоJava-файл MongoHttpSessionConfiguration от Spring, который автоматически настраивается весной;Я попытался расширить "MongoHttpSessionConfiguration"
и переопределить методы установки самостоятельно.Например, "setMaxInactiveIntervalInSeconds"
для sessionTime и "setCollectionName"
для имени коллекции базы данных mongododb.но у меня есть эта ошибка:
Description:
The bean 'mongoSessionRepository', defined in class path resource [com/khatpass/app/config/SessionListenerConfig.class], could not be registered. A bean with that name has already been defined in class path resource [org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfiguration.class] and overriding is disabled.
Я застрял при попытке настроить сеанс весенней загрузки с Mongodb.Сеанс всегда по умолчанию равен 30 минутам, а имя коллекции всегда является «сеансом» в коллекциях mongodb.Не уверен, как поменять это serverSelectionTimeout='30000 ms'
и в коллекциях mongodb на «сеансы». Я не знаю, что делать, нужна помощь.
2019-02-24 13:39:54.501 INFO 36113 --- [ main] org.mongodb.driver.cluster : Cluster created with settings {hosts=[localhost:27017], mode=MULTIPLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}