Расширение нескольких источников данных MongoDB в Spring Boot

MongoDB

В нашей повседневной работе мы работаем с базой данных Mongodb через Spring Data Mongodb, В Spring Boot нам нужно только ввести spring-boot-starter-data-mongodb.

Затем настройте информацию о подключении следующим образом:

spring.data.mongodb.uri=mongodb://localhost:27017/test

или

pring.data.mongodb.authentication-database= # Authentication database name.
spring.data.mongodb.database=test # Database name.
spring.data.mongodb.host=localhost # Mongo server host.
spring.data.mongodb.password= # Login password of the mongo server.
spring.data.mongodb.port=27017 # Mongo server port.
spring.data.mongodb.username= # Login user of the mongo server.

spring-boot-starter-data-mongodb предоставляет два метода настройки: uri и host. uri может быть настроен с несколькими адресами, как настроен кластер. Хост может подключаться только к одному узлу.

Когда в проекте необходимо подключить несколько баз данных, автоматическая конфигурация spring-boot-starter-data-mongodb не может соответствовать требованиям, поэтому здесь я инкапсулировал Spring-boot-starter Mongodb с несколькими источниками данных.

Я уже писал статью об использовании нескольких источников данных:spring-boot-starter-mongodb-pool

Так как это первая версия, некоторые вещи не были учтены.Недавно она была обновлена, добавлен некоторый контент, и она была обновлена ​​до Spring Boot версии 2.0.

Github:GitHub.com/Йинджи Хуан/Да…

Во-первых, давайте кратко представим, как его использовать:

Настройте адрес склада:

<repositories>
	<repository>
		<id>jitpack.io</id>
		<url>https://www.jitpack.io</url>
	</repository>
</repositories>

Настройте последнюю версию, поддерживает только Spring Boot 2.0

<dependency>
	<groupId>com.github.yinjihuan</groupId>
	<artifactId>spring-boot-starter-mongodb-pool</artifactId>
	<version>2.0.2</version>
</dependency>

Моя конфигурация здесь также uri и хост.Для uri настраивается только информация об узле mongo, которая отличается от формата uri по умолчанию и не содержит информации о пользователе и параметрах подключения.

Кластер конфигурации URI

spring.data.mongodb.testMongoTemplate.uri=localhost:27017,localhost:27018
spring.data.mongodb.testMongoTemplate.username=yinjihuan
spring.data.mongodb.testMongoTemplate.password=123456
spring.data.mongodb.testMongoTemplate.database=test
spring.data.mongodb.testMongoTemplate.authenticationDatabase=admin

Конфигурация режима HOST

spring.data.mongodb.testMongoTemplate.host=localhost
spring.data.mongodb.testMongoTemplate.port=27017
spring.data.mongodb.testMongoTemplate.database=test
spring.data.mongodb.testMongoTemplate.username=yinjihuan
spring.data.mongodb.testMongoTemplate.password=123456

testMongoTemplate — это объект MongoTemplate, который мы используем для работы с тестовой базой данных. Фреймворк автоматически создаст его для вас, просто внедрите его и используйте.

@Autowired
@Qualifier("testMongoTemplate")
private MongoTemplate testMongoTemplate;

Для нескольких источников данных просто настройте несколько MongoTemplates, например:

spring.data.mongodb.testMongoTemplate.host=localhost
spring.data.mongodb.testMongoTemplate.port=27017
spring.data.mongodb.testMongoTemplate.database=test
spring.data.mongodb.testMongoTemplate.username=yinjihuan
spring.data.mongodb.testMongoTemplate.password=123456

spring.data.mongodb.test2MongoTemplate.host=localhost
spring.data.mongodb.test2MongoTemplate.port=27017
spring.data.mongodb.test2MongoTemplate.database=test2
spring.data.mongodb.test2MongoTemplate.username=yinjihuan
spring.data.mongodb.test2MongoTemplate.password=123456

Какой объект внедряется в какую базу данных работает:

@Autowired
@Qualifier("testMongoTemplate")
private MongoTemplate testMongoTemplate;

@Autowired
@Qualifier("test2MongoTemplate")
private MongoTemplate test2MongoTemplate;

Примечания к выпуску

  • Поддержка версии Spring Boot 2.x Первая версия 1.0.0 поддерживает только версию Spring Boot 1.x.
  • Плюс конфигурация аутентификации пользователя Первая версия 1.0.0 не добавляла логику аутентификации по паролю учетной записи.
  • Поддержка конфигурации адреса кластера Настройте информацию о кластере через uri

Если вы хотите узнать подробности реализации фреймворка, перейдите по ссылке:cxytiandi.com/course

猿天地