Подтвердить что ты не робот

Spring Загрузка и настройка параметров подключения к MongoDB?

Будучи новичком в Spring Загрузка. Мне интересно, как настроить параметры соединения для MongoDB. Я пробовал обычные примеры, но ни одна из них не касается деталей подключения.

Я хочу указать базу данных, которая будет использоваться, и url/port хоста, который запускает MongoDB.

Любые подсказки или подсказки?

4b9b3361

Ответ 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