我正在使用spring Boot web应用程序,它连接到mongo db,它可以开箱即用。我只使用以下属性:
spring.data.mongodb.host=myHost
spring.data.mongodb.port=27017
spring.data.mongodb.database=myDatabase
spring.data.mongo.repositories.enabled=true
spring.data.mongodb.username=myUser
spring.data.mongodb.password=myPassword
字符串
MongoDB的默认超时是10秒。我想配置超时。我尝试了spring.data.mongodb.socketTimeout=2
或spring.data.mongodb.connectionTimeout=2
没有一个属性可以工作。我可以在属性中指定一些东西,Spring框架会处理它,或者有人可以通过声明Bean来给予示例。
8条答案
按热度按时间ua4mk5z41#
要遵循您的主题,这将是最好的回答您的问题。看起来你想在您的application.properties文件中设置超时。
为此:
而不是
字符串
试试这个
型
将时间(以毫秒为单位)修改为所需时间。
li9yvcax2#
这将覆盖Sping Boot 自动配置:
字符串
s2j5cfk03#
对于使用Reactive MongoDb的Spring Data :
我的情况有点不同(我有关闭连接-抛出“Caused by:java.lang.IllegalStateException:state should be:open”)
但是你可以用这个来做你的案子。
应用程序.yml:
字符串
如果您的实现使用MongoReactiveAutoConfiguration来创建bean,那么您可以使用此bean进行配置:
型
xhv8bpkk4#
MongoClientOptions是一个具有所需属性的类。
以编程方式如果您已经以编程方式配置了MongoDB,那么下面的代码片段可以帮助您。
字符串
XML配置-高级
型
另请参阅此处以获取完整的文档。
ssm49v7z5#
这个问题很老了,但对于所有那些有Mongo DB JAVA驱动程序超时问题的人来说:设置maxConnectionIdleTime属性。
Spring Boot 示例:
字符串
非常有用的链接:Java DriverJAVA-2535 com.mongodb.MongoSocketWriteException ......
cgyqldqp6#
这个问题是专门针对Sping Boot 的。我使用了下面的方法,效果很好,请建议是否有一种方法可以不使用new而使用Spring来配置它。
字符串
r7xajy2e7#
如果你只想自定义一个或其他MongoClientSettings,而不是返回一个所有设置都已填充的设置,最好使用以下方法:
字符串
r6vfmomb8#
我找到了以下文件,其中有一个可能的解决方案。
https://www.programmersought.com/article/1927319190/
其中提到以下内容:
字符串
我现在试着测试它,以确保它是工作,但它至少似乎是可信的。