亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法配置 Java Spring Boot 數據會話 Mongodb

無法配置 Java Spring Boot 數據會話 Mongodb

慕桂英3389331 2022-07-06 09:42:48
我一直在使用本指南使用 mongodb 設置春季會話數據https://docs.spring.io/spring-session-data-mongodb/docs/2.1.1.RELEASE/reference/htmlsingle/#introduction但是我在配置方面遇到問題。我在 Spring Boot 中使用 Mongodb,我正在嘗試為 Spring Boot Web 應用程序配置我的會話時間和會話名稱,但它一直默認為 30 分鐘,并且 mongodb 中的集合名稱仍然是“會話”這些是我嘗試過的:將這些添加到 application.properties:server.session.timeout=1spring.session.mongodb.collection-name=TestSESSIONS和這個server.servlet.session.timeout=60sspring.session.mongodb.collection-name=TestSESSIONS這些配置都不起作用我已經查看了這個URL以獲取 mongodb 的 spring 通用應用程序屬性,但它都沒有幫助配置 mongodb 的會話時間和集合名稱。經過數小時的研究,似乎 Spring Boot 使用了某種自動配置"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
查看完整描述

2 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

經過這么多研究,最后,通過源代碼,我找到了解決方案:

@EnableMongoHttpSession(maxInactiveIntervalInSeconds = 24 * 60 * 60)
public class SessionConfiguration {}

要覆蓋默認集合名稱,還有另一個注解屬性collectionName

這適用于 Spring Boot 2.1.1


查看完整回答
反對 回復 2022-07-06
?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

在查看了MongoOperationsSessionRepository類之后,org.springframework.session.data.mongo它似乎無法配置,application.properties因為該類使用靜態最終值

public static final int DEFAULT_INACTIVE_INTERVAL = 1800;

public static final String DEFAULT_COLLECTION_NAME = "sessions";

更改值的唯一方法是在對象保存之前攔截它。這些字段沒有 getter 或 setter,不能輕易改變,真是個笑話!


查看完整回答
反對 回復 2022-07-06
  • 2 回答
  • 0 關注
  • 453 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號