MongoDB – это докумСнтная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… NoSQL с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ JSON-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ схСму вмСсто Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… рСляционных Π΄Π°Π½Π½Ρ‹Ρ…, основанных Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…. Spring Boot содСрТит нСсколько Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… срСдств для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с MongoDB, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ "стартСры" spring-boot-starter-data-mongodb ΠΈ spring-boot-starter-data-mongodb-reactive.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… MongoDB

Для доступа ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… MongoDB ΠΌΠΎΠΆΠ½ΠΎ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ org.springframework.data.mongodb.MongoDatabaseFactory. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ экзСмпляр Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ сСрвСру MongoDB ΠΏΠΎ адрСсу mongodb://localhost/test. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ происходит ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… MongoDB:

Java
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.stereotype.Component;
@Component
public class MyBean {
    private final MongoDatabaseFactory mongo;
    public MyBean(MongoDatabaseFactory mongo) {
        this.mongo = mongo;
    }
    // ...
    public MongoCollection<Document> someMethod() {
        MongoDatabase db = this.mongo.getMongoDatabase();
        return db.getCollection("users");
    }
}
Kotlin
import com.mongodb.client.MongoCollection
import org.bson.Document
import org.springframework.data.mongodb.MongoDatabaseFactory
import org.springframework.stereotype.Component
@Component
class MyBean(private val mongo: MongoDatabaseFactory) {
    // ...
    fun someMethod(): MongoCollection<Document> {
        val db = mongo.mongoDatabase
        return db.getCollection("users")
    }
}

Если Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ собствСнный MongoClient, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для автоконфигурирования подходящСй MongoDatabaseFactory.

АвтоконфигурируСмый MongoClient создаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ½Π° MongoClientSettings. Если Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ собствСнный MongoClientSettings, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π° свойства spring.data.mongodb Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС MongoClientSettings Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски сконфигурирован ΠΈ ΠΊ Π½Π΅ΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ свойства spring.data.mongodb. Π’ любом случаС, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π±ΠΈΠ½ΠΎΠ² MongoClientSettingsBuilderCustomizer для Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ½ΠΊΠΎΠΉ настройки ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ MongoClientSettings. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ порядку Ρ‡Π΅Ρ€Π΅Π· MongoClientSettings.Builder, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для построСния MongoClientSettings.

МоТно ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свойство spring.data.mongodb.uri, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ URL-адрСс ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ Ρ€Π΅ΠΏΠ»ΠΈΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

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

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ соСдинСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дискрСтных свойств. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² Ρ„Π°ΠΉΠ»Π΅ application.properties:

Properties
spring.data.mongodb.host=mongoserver.example.com
spring.data.mongodb.port=27017
spring.data.mongodb.database=test
spring.data.mongodb.username=user
spring.data.mongodb.password=secret
Yaml
spring:
  data:
    mongodb:
      host: "mongoserver.example.com"
      port: 27017
      database: "test"
      username: "user"
      password: "secret"
Если spring.data.mongodb.port Π½Π΅ Π·Π°Π΄Π°Π½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 27017. МоТно ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ эту строку ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π½Π΅Π΅.
Если Spring Data MongoDB Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π±ΠΈΠ½ MongoClient вмСсто использования MongoDatabaseFactory. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс установлСния соСдинСния с MongoDB, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ свой собствСнный Π±ΠΈΠ½ MongoDatabaseFactory ΠΈΠ»ΠΈ MongoClient.
ΠŸΡ€ΠΈ использовании Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° SSL трСбуСтся Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Netty. Автоконфигурация настраиваСт эту Ρ„Π°Π±Ρ€ΠΈΠΊΡƒ автоматичСски, Ссли Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Netty доступСн, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Ρ„Π°Π±Ρ€ΠΈΠΊΠ° Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»Π° настроСна.

MongoTemplate

Spring Data MongoDB> прСдусматриваСт класс MongoTemplate, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ своСй структурС ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° JdbcTemplate ΠΈΠ· Spring. Как ΠΈ Π² случаС с JdbcTemplate, Spring Boot автоматичСски добавляСт Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π±ΠΈΠ½ для внСдрСния шаблона ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Java
import com.mongodb.client.MongoCollection;
import org.bson.Document;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;
@Component
public class MyBean {
    private final MongoTemplate mongoTemplate;
    public MyBean(MongoTemplate mongoTemplate) {
        this.mongoTemplate = mongoTemplate;
    }
    // ...
    public MongoCollection<Document> someMethod() {
        return this.mongoTemplate.getCollection("users");
    }
}
Kotlin
import com.mongodb.client.MongoCollection
import org.bson.Document
import org.springframework.data.mongodb.core.MongoTemplate
import org.springframework.stereotype.Component
@Component
class MyBean(private val mongoTemplate: MongoTemplate) {
    // ...
    fun someMethod(): MongoCollection<Document> {
        return mongoTemplate.getCollection("users")
    }
}

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Spring Data MongoDB

Spring Data содСрТит срСдства ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² для MongoDB. Как ΠΈ Π² случаС с рСпозиториями для JPA, рассмотрСнными Ρ€Π°Π½Π΅Π΅, основной ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ запросы строятся автоматичСски, Π½Π° основС ΠΈΠΌΠ΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

ЀактичСски, ΠΈ Spring Data JPA, ΠΈ Spring Data MongoDB ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΠ±Ρ‰ΡƒΡŽ инфраструктуру. МоТно Π²Π·ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для JPA ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈ, ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ City Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ являСтся классом Π΄Π°Π½Π½Ρ‹Ρ… MongoDB, Π° Π½Π΅ JPA-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ с Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ @Entity, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Java
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.repository.Repository;
public interface CityRepository extends Repository<City, Long> {
    Page<City> findAll(Pageable pageable);
    City findByNameAndStateAllIgnoringCase(String name, String state);
}
Kotlin
import org.springframework.data.domain.Page
import org.springframework.data.domain.Pageable
import org.springframework.data.repository.Repository
interface CityRepository :
    Repository<City?, Long?> {
    fun findAll(pageable: Pageable?): Page<City?>?
    fun findByNameAndStateAllIgnoringCase(name: String?, state: String?): City?
}
МоТно Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ мСстополоТСния сканирования Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ @EntityScan.

ВстраиваСмая систСма Mongo

Spring Boot прСдусматриваСт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ для встраиваСмой систСмы Mongo. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² своСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Spring Boot, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ de.flapdoodle.embed:de.flapdoodle.embed.mongo ΠΈ установитС свойство spring.mongodb.embedded.version Π² соотвСтствии с вСрсиСй MongoDB, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² производствСнном ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ вСрсий, пСрСчислСнных Π² классС вСрсии встраиваСмой систСмы Mongo, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ нСдоступной вСрсии ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ возникновСнию ошибкС ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сСрвСра. Π’Π°ΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ сконфигурированный Π±ΠΈΠ½ DownloadConfigBuilderCustomizer.

ΠŸΠΎΡ€Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ Mongo, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, установив свойство spring.data.mongodb.port. Для использования свободного ΠΏΠΎΡ€Ρ‚Π°, Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0. MongoClient, созданный с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MongoAutoConfiguration, автоматичСски конфигурируСтся Π½Π° использованиС ΠΏΠΎΡ€Ρ‚Π°, Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Если Π²Ρ‹ Π½Π΅ сконфигурируСтС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΏΠΎΡ€Ρ‚, встроСнныС срСдства ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ случайный ΠΏΠΎΡ€Ρ‚ (Π° Π½Π΅ 27017).

Если Π² classpath находится SLF4J, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, созданныС Mongo, автоматичСски ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² диспСтчСр Турналирования с ΠΈΠΌΠ΅Π½Π΅ΠΌ org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongo.

МоТно ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ собствСнныС Π±ΠΈΠ½Ρ‹ IMongodConfig ΠΈ IRuntimeConfig, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ экзСмпляра Mongo ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Турналирования. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡƒΡ‚Π΅ΠΌ объявлСния Π±ΠΈΠ½Π° DownloadConfigBuilderCustomizer.