Spring Boot以及如何将连接细节configuration到MongoDB?

作为Spring Boot的新手我想知道如何为MongoDBconfiguration连接细节。 我已经尝试了正常的例子,但没有涵盖连接的细节。

我想指定要使用的数据库以及运行MongoDB的主机的url / port。

任何提示或提示?

只要引用Boot Docs :

您可以设置spring.data.mongodb.uri属性来更改url,或者指定host/port 。 例如,您可以在application.properties声明以下内容:

 spring.data.mongodb.host=mongoserver spring.data.mongodb.port=27017 

spring.data.mongodb前缀的所有可用选项都是spring.data.mongodb的字段:

 private String host; private int port = DBPort.PORT; private String uri = "mongodb://localhost/test"; private String database; private String gridFsDatabase; private String username; private char[] password; 

在maven项目中,创build一个文件src/main/resources/application.yml其中包含以下内容:

 spring.profiles: integration # use local or embedded mongodb at localhost:27017 --- spring.profiles: production spring.data.mongodb.uri: mongodb://<user>:<passwd>@<url>:<port>/<dbname> 

Spring Boot会自动使用这个文件来configuration你的应用程序。 然后,您可以使用集成configuration文件(并使用本地MongoDB)来启动Spring引导应用程序

 java -jar -Dspring.profiles.active=integration your-app.jar 

或与生产configuration文件(并使用您的生产MongoDB)

 java -jar -Dspring.profiles.active=production your-app.jar 

您可以通过扩展AbstractMongoConfiguration来定义更多的细节。

 @Configuration @EnableMongoRepositories("demo.mongo.model") public class SpringMongoConfig extends AbstractMongoConfiguration { @Value("${spring.profiles.active}") private String profileActive; @Value("${spring.application.name}") private String proAppName; @Value("${spring.data.mongodb.host}") private String mongoHost; @Value("${spring.data.mongodb.port}") private String mongoPort; @Value("${spring.data.mongodb.database}") private String mongoDB; @Override public MongoMappingContext mongoMappingContext() throws ClassNotFoundException { // TODO Auto-generated method stub return super.mongoMappingContext(); } @Override @Bean public Mongo mongo() throws Exception { return new MongoClient(mongoHost + ":" + mongoPort); } @Override protected String getDatabaseName() { // TODO Auto-generated method stub return mongoDB; } } 

如果您使用的是Mongo 3.0 Java驱动程序,则不支持spring.data.mongodb.hostspring.data.mongodb.port 。 在这种情况下,应该使用spring.data.mongodb.uri来提供所有的configuration,如下所示:

 spring.data.mongodb.uri=mongodb://user:secret@mongo1.example.com:12345