Spring Загрузка и настройка параметров подключения к MongoDB?
Будучи новичком в Spring Загрузка. Мне интересно, как настроить параметры соединения для MongoDB.
Я пробовал обычные примеры, но ни одна из них не касается деталей подключения.
Я хочу указать базу данных, которая будет использоваться, и url/port хоста, который запускает MongoDB.
Любые подсказки или подсказки?
Ответы
Ответ 1
Просто чтобы процитировать Загрузочные документы:
Вы можете установить свойство 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;
Ответ 2
В проекте 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 Загрузка будет автоматически использовать этот файл для настройки вашего приложения. Затем вы можете запустить приложение загрузки spring либо с профилем интеграции (и использовать локальный MongoDB)
java -jar -Dspring.profiles.active=integration your-app.jar
или с профилем производства (и используйте ваше производство MongoDB)
java -jar -Dspring.profiles.active=production your-app.jar
Ответ 3
Вы можете определить более подробную информацию, расширив 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;
}
}
Ответ 4
spring.data.mongodb.host
и spring.data.mongodb.port
не поддерживаются, если вы используете драйвер Mongo 3.0 Java. В таких случаях spring.data.mongodb.uri
следует использовать для обеспечения всей конфигурации, например:
spring.data.mongodb.uri=mongodb://user:[email protected]:12345