Spring Boot的新手我想知道如何配置MongoDB的連接細節。 我試過了一些正常的例子,但是沒有一個覆蓋連接細節。Spring Boot以及如何配置連接細節到MongoDB?
我想指定要使用的數據庫以及運行MongoDB的主機的URL /端口。
任何提示或提示?
Spring Boot的新手我想知道如何配置MongoDB的連接細節。 我試過了一些正常的例子,但是沒有一個覆蓋連接細節。Spring Boot以及如何配置連接細節到MongoDB?
我想指定要使用的數據庫以及運行MongoDB的主機的URL /端口。
任何提示或提示?
只是引述Boot Docs:
您可以設置
spring.data.mongodb.uri
屬性來更改URL,或者指定一個host/port
。例如,你可能會聲明在application.properties
如下:
spring.data.mongodb.host=mongoserver
spring.data.mongodb.port=27017
爲spring.data.mongodb
前綴所有可用的選項是MongoProperties
領域:
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項目創建一個文件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會自動使用這個文件來配置你的應用程序。然後,你就可以開始你的春季啓動應用程序或者與集成模式(和使用本地的MongoDB)
java -jar -Dspring.profiles.active=integration your-app.jar
或與生產概況(和使用您的產品的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;
}
}
指定的用戶名和密碼在哪裏?當我們只是在applicaiton.properties中定義它,然後擴展AbstractMongoConfiguration時,它會提供未授權的關注。 –
它會在application.properties –
裏面使用profile變量來做到這一點嗎? 'if(profileActive ==「dev」){\t return new Fongo(getDatabaseName())。getMongo();} else {return new MongoClient(url,port); }' – anat0lius
spring.data.mongodb.host
和spring.data.mongodb.port
如果您使用的是蒙戈3.0 Java驅動程序不被支持。在這種情況下,spring.data.mongodb.uri
應該用來提供所有的配置,這樣的:
spring.data.mongodb.uri=mongodb://user:[email protected]:12345
如果您沒有用戶名或密碼,該怎麼辦? – Jesse
嘿,我會做同樣的使用Spring啓動正常的web應用程序?我在哪裏可以找到application.properties文件? – Theo
如果您不想依賴默認選項,您需要自己編寫它:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config。 html –
請注意,如果您想將密碼字段設置爲char [],那麼目前存在問題。而是使用uri字段。看到這個錯誤報告的底部:https://github.com/spring-projects/spring-boot/issues/536 – grahamrb