Spring Boot: работа с NoSQL, MongoDB

MongoDB - это NoSQL база данных документов, с открытым исходным кодом, которая использует JSON-подобную схему вместо традиционных реляционных данных на основе таблиц. Spring Boot предлагает несколько удобств для работы с MongoDB, включая стартеры spring-boot-starter-data-mongodb и spring-boot-starter-data-mongodb-reactive.

Подключение к базе данных MongoDB

Чтобы получить доступ к базам данных Mongo, вы можете добавить автоматически настроенный org.springframework.data.mongodb.MongoDbFactory. По умолчанию экземпляр пытается подключиться к серверу MongoDB по адресу mongodb://localhost/test. В следующем примере показано, как подключиться к базе данных MongoDB:

import org.springframework.data.mongodb.MongoDbFactory;
import com.mongodb.DB;

@Component
public class MyBean {

    private final MongoDbFactory mongo;

    @Autowired
    public MyBean(MongoDbFactory mongo) {
        this.mongo = mongo;
    }

    // ...

    public void example() {
        DB db = mongo.getDb();
        // ...
    }

}

Вы можете установить свойство spring.data.mongodb.uri, чтобы изменить URL-адрес и настроить дополнительные параметры, такие как набор реплик, как показано в следующем примере:

spring.data.mongodb.uri=mongodb://user:secret@mongo1.example.com:12345,mongo2.example.com:23456/test

Кроме того, если вы используете Mongo 2.x, вы можете указать host/port. Например, вы можете объявить следующие параметры в вашем application.properties:

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

Если вы определили свой собственный MongoClient, он будет использоваться для автоматической настройки подходящего MongoDbFactory. Поддерживаются как com.mongodb.MongoClient, так и com.mongodb.client.MongoClient.

Если вы используете Java-драйвер Mongo 3.0, spring.data.mongodb.host и spring.data.mongodb.port не поддерживаются. В таких случаях следует использовать spring.data.mongodb.uri для обеспечения всей конфигурации.

Если spring.data.mongodb.port не указан, используется значение по умолчанию 27017. Вы можете удалить эту строку из примера, показанного выше.

Если вы не используете Spring Data Mongo, вы можете внедрить bean-компоненты com.mongodb.MongoClient вместо использования MongoDbFactory. Если вы хотите получить полный контроль над установлением соединения MongoDB, вы также можете объявить свой собственный компонент MongoDbFactory или MongoClient.

Если вы используете реактивный драйвер, Netty требуется для SSL. Автоконфигурация автоматически настраивает эту фабрику, если Netty доступен, а фабрика для использования еще не настроена.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки