另外需要注意的是,MongoDB有“authentication database”的概念,它可以与您要连接的数据库不同。例如,如果您使用official Docker image for Mongo并指定环境变量MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD,则会在'admin'数据库上创建一个用户,该数据库可能不是您要使用的数据库。在这种情况下,你应该在你的application.properties文件中指定相应的参数:
spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=<username specified on MONGO_INITDB_ROOT_USERNAME>
spring.data.mongodb.password=<password specified on MONGO_INITDB_ROOT_PASSWORD>
spring.data.mongodb.database=<the db you want to use>
spring.profiles: integration
# use local or embedded mongodb at localhost:27017
---
spring.profiles: production
spring.data.mongodb.uri: mongodb://<user>:<passwd>@<host>:<port>/<dbname>
9条答案
按热度按时间wfsdck301#
引用 Boot Docs:
您可以设置
spring.data.mongodb.uri
属性来更改url,或者指定host/port
。例如,您可以在application.properties
中声明以下内容:spring.data.mongodb
前缀的所有可用选项都是MongoProperties
的字段:oo7oh9g92#
另外需要注意的是,MongoDB有“authentication database”的概念,它可以与您要连接的数据库不同。例如,如果您使用official Docker image for Mongo并指定环境变量
MONGO_INITDB_ROOT_USERNAME
和MONGO_INITDB_ROOT_PASSWORD
,则会在'admin'数据库上创建一个用户,该数据库可能不是您要使用的数据库。在这种情况下,你应该在你的application.properties
文件中指定相应的参数:vu8f3i0k3#
如果您使用的是Mongo 3.0 Java驱动,则不支持
spring.data.mongodb.host
和spring.data.mongodb.port
。在这种情况下,应该使用spring.data.mongodb.uri
来提供所有配置,如下所示:x6yk4ghg4#
在maven项目中创建一个包含以下内容的文件
src/main/resources/application.yml
:Sping Boot 将自动使用此文件来配置您的应用程序。然后您可以使用集成配置文件启动您的Spring Boot应用程序(并使用本地MongoDB)
或者使用生产配置文件(并使用生产MongoDB)
myzjeezk5#
您可以通过扩展AbstractMongoConfiguration来定义更多细节。
yqyhoc1h6#
如果有人试图连接到www.example.com中的Atlas MongoDB集群application.properties必须具有如下配置:
q3qa4bjr7#
在我的例子中,我需要使用Testcontainers设置MongoDB进行集成测试。使用属性文件不是一个选项,因为Mongo端口必须在运行时指定。我想保留SpringBoot提供的原始MongoDB自动配置,但覆盖一些属性。这可以通过定义
MongoClientSettingsBuilderCustomizer
类型的bean来实现,该bean可用于自定义mongo设置:whlutmcx8#
如果你只是想从环境变量中读取MongoDB连接字符串,一种方法是设置以下环境变量:
这不需要在
application.properties
中进行任何更改,因为spring data mongo将默认从上述环境变量中读取值。xoshrz7s9#
这里是如何在Sping Boot 2.0中通过创建自定义MongoClient添加为Connection提供更多控制,
请关注github Link for Full Source Code