
Spring Batch научился работать с MongoDB
spring_aio 12 минут назад Spring Batch научился работать с MongoDB Простой 8 мин 408 Блог компании Spring АйО Программирование * Java * Kotlin * Обзор Перевод Автор оригинала: Josh Long Spring Batch появился за много...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Вот важная новость с фронта ИИ: spring_aio 12 минут назад Spring Batch научился работать с MongoDB Простой 8 мин 408 Блог компании Spring АйО Программирование * Java * Kotlin * Обзор Перевод Автор оригинала: Josh Long Spring Batch появился за много лет до появления MongoDB, и его архитектура изначально предполагала наличие SQL-базы данных для хранения состояния заданий Spring Batch. Но это было десятилетия назад, а один из самых частых вопросов у тех, кто впервые сталкивался со Spring Batch, звучал так: «Почему этой штуке нужно обращаться к SQL-базе данных? » Ответ, конечно, заключался в том, что Spring Batch ведет подробнейший учет каждого задания, шага и выполнения в JobRepository, и многие годы этот репозиторий говорил на одном диалекте — SQL.
Если вы счастливо жили в мире MongoDB, вам все равно приходилось тащить за собой экземпляр Postgres или MySQL лишь для того, чтобы Batch мог записать, что он сделал в прошлый вторник. В последних версиях Spring Batch JobRepository был отвязан от JDBC, а Spring Boot 4. 1 наконец доводит этот опыт до полноценного состояния с помощью корректной автоконфигурации spring-boot-starter-batch-data-mongodb.
Технические детали
Вы получаете такой же zero-config-опыт Boot для метаданных batch-задач, каким пользователи JDBC наслаждались с самого начала. Занятный факт: доктор Дэйв Сайер, сооснователь Spring Boot, был основателем и многолетним руководителем Spring Batch. Естественно, первой автоконфигурацией, которую он написал для Spring Boot, была автоконфигурация для Spring Batch!
Так что, когда я говорю, что пользователи Spring Boot пользовались поддержкой на базе JDBC в Spring Boot с самого начала, я именно это имею в виду :)В этом материале мы разберем небольшой, но полноценный пример. Он:Хранит Spring Batch JobRepository в MongoDB через новый стартер 4. Записывает строки в таблицу PostgreSQL customers.
Запускает все это на сервисах, поднятых через compose. yaml в корне проекта. Поднимаем инфраструктуруПрежде чем работать с одной конкретной строкой в Java, запустим два вспомогательных сервиса:docker compose upcompose.
Отраслевые последствия
yaml поднимает экземпляр MongoDB, настроенный как одноузловой replica set — поддержке MongoDB в Batch нужны транзакции, а для транзакций нужен replica set, — экземпляр PostgreSQL для целевой таблицы и контейнер Grafana LGTM для наблюдаемости, если он понадобится позже. Задание, которое мы определим, — это простой ETL-процесс: extraction, transformation, load, то есть извлечение, преобразование и загрузка. Он читает данные из файла customers.
csv и записывает их в таблицу customers в базе данных PostgreSQL. Нам нужно инициализировать таблицу Postgres customers; это делает src/main/resources/schema. sql:create table if not exists customers ( id serial primary key, name varchar(255), email varchar(255) );SQL-инициализация Spring Boot (spring.
mode=always) выполняет этот скрипт при запуске. Сторона MongoDB устроена так же автономно — spring.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





