Spring на русском Заметка

Spring на русском

Spring - это мощный набор инструментов, предназначенный для быстрого и эффективного создания веб-приложений, позволяющий разработчикам создавать приложения корпоративного уровня, используя простой и расширяемый способ создания кода. Фреймворк Spring позволяет использовать Java или другие языки для создания приложений и их развертывания на любом типе многоуровневого сервера, будь то HTTP-сервер или сервер приложений. Spring доказал свою эффективность в самых разных средах, облегчая широкий спектр задач как для небольших, так и для больших команд. Фреймворк предоставляет различные модули, которые можно использовать по отдельности или вместе для создания приложений корпоративного уровня, обеспечивая гибкость и простоту процесса разработки. Официальный сайт Spring предоставляет различные ресурсы и инструменты, такие как документация, учебники, обучающие курсы и примеры, которые помогут разработчикам начать работу и освоить фреймворк. На сайте также размещены последние заметки о релизах, обновления и раздел сообщества, где разработчики могут поделиться идеями, получить поддержку или внести свой вклад в проект.

Трэд заметок

Spring AI TypeSafe интегрирует Jev API от TypeSafe AI для предоставления быстрых, дешевых и структурированных компонентов принятия решений для приложений ИИ. Он обходит традиционное шаблонизацию промптов и парсинг JSON-схем, вместо этого предлагая клиент, который принимает состояние и типизированные вопросы для возврата структурированных ответов. Система обрабатывает три примитивных типа вопросов: Noul для да/нет, Choice для выбора опции и Score для ранжирования по шкале. Эти примитивы возвращают точные значения, вероятности и степени уверенности, обеспечивая гранулярную оценку.Сервис разработан для скорости и экономической эффективности, значительно превосходя типичные вызовы чат-моделей в бенчмарках как по производительности, так и по цене. Это позволяет проводить проверки на различных этапах конвейеров ИИ. Основная идея заключается в составлении атомарных вопросов в коде, что позволяет сервису обрабатывать их параллельно на основе одного наблюдения состояния.Эта возможность демонстрируется в сценарии LLM-как-судья, где JevJudge может быть построен с конкретными критериями и порогами для оценки выходных данных модели. Оценки уверенности предоставляют дополнительную ось информации, указывающую на достоверность ответа на основе его распределения. JevSelfRefineAdvisor использует эту систему судейства для реализации циклов самокоррекции, повторяя вызовы модели с обратной связью, когда критерии не соблюдаются.Кроме того, JevGuardrailAdvisor действует как уровень безопасности, проверяя как пользовательский ввод, так и выходные данные модели на наличие предопределенных опасностей. Он не повторяет попытки, а блокирует или помечает в зависимости от серьезности. Выходные данные системы структурированы, предлагая классификации, оценки и решения без генерации прозы.Примитивы TypeSafe AI: Noul (да/нет, возвращает истинное значение от 0 до 1), Choice (выбор одной опции, возвращает выбранную метку и вероятности для всех опций вместе с уверенностью) и Score (размещение на упорядоченной шкале, возвращает непрерывное значение и связанные вероятности). Описания опций и четкие инструкции для этих примитивов значительно улучшают производительность и уверенность. Проект доступен как стартер Maven Central и может использоваться как с Spring Boot, так и без него.
CdXz5zHNQW_hDXjfLYIZj.png
На этой неделе в Spring представлены различные обновления и аналитические материалы для разработчиков Spring. Среди основных моментов — презентация принципов управления памятью Java от Oracle. Spring AI продолжает оставаться в центре внимания, предлагая рецепт для суммирования памяти чата. Безопасность остается ключевой темой: учебное пособие по защите приложений JavaFX с использованием Spring Security и OAuth 2.0. В статье обсуждается защита современных приложений с помощью OAuth 2.1 и Spring Authorization Server. Отмечаются интересные разработки в области интеграции ИИ, включая видео о понимании видео с помощью Spring и Gemini, а также новую Java-библиотеку Quixotic.ai, которая может улучшить рабочие нагрузки ИИ. В эпизоде подкаста обсуждается с Полом Баккером из Netflix их путь с Java и Spring. Новые разработки включают плагин Spring Batch для IntelliJ IDEA, хотя примечания к выпуску отсутствуют. Кроме того, в статье рассматривается масштабирование Spring Batch до миллионов строк. Наконец, статья на Baeldung объясняет отладку приложений Spring Boot с помощью отладчика Spring в IntelliJ.
На этой неделе в Spring представлены интересные обновления и материалы для разработчиков. Крейг Уоллс продолжает делиться ценными идеями в своих "Рецептах Spring AI", рассказывая о запуске LLM в JVM и эффективном использовании инструментов. Он также исследует запуск локальных LLM. ДаШон Картер делится своей работой над стартером Spring AI для агентов.В других новостях статья Доминика на Solodev.sk посвящена использованию вертикальных срезов в Spring Boot. Автор также выпустил два видео, демонстрирующих создание нативных, эффективных настольных приложений с использованием Spring Boot, JavaFX, нативных образов GraalVM и Spring Security. Эти приложения предлагают убедительную альтернативу решениям на базе Electron.В недавнем выпуске A Bootiful Podcast Кэтрин Эдельвейс обсуждала безопасные образы Spring Boot. Кроме того, есть статьи об управлении внешними конфигурациями с помощью Spring Cloud Config и обзор новых функций в Spring Cloud AWS 4.1.1. Наконец, Foojay.io опубликовал статью об уроках, извлеченных при написании Spring Boot Analyzer.
На этой неделе в Spring освещаются последние вклады сообщества и разработки. Автор посещает несколько конференций в Осло, Амстердаме и Канзас-Сити, подчеркивая важность активного сообщества. Представлена диаграмма, служащая руководством по изучению концепций Spring. Проводится интересное сравнение между Apache Kafka и RabbitMQ. Анонсированы несколько релизов Spring Modulith, включая версии 2.2.M1, 2.1.1, 2.0.8 и 1.4.13. Продолжается серия статей о создании мультиарендных систем, с видео, посвященным разделению данных. В недавнем выпуске Bootiful Podcast Джо Гранджа обсуждал Spring Security и OAuth. Множество статей и рецептов посвящены Spring AI. Родольфо Мендес написал о создании агентов на базе Spring AI. Baeldung поделился публикацией об использовании моделей Claude от Anthropic с Spring AI. Крейг Уоллс предоставил несколько рецептов Spring AI, охватывающих повторное использование инструментов, улучшенный поиск с гибридным поиском, лучшие результаты RAG за счет повторного ранжирования и гипотетические вложения документов для RAG.
Выпущен Spring AI 2.0.1 — обновление для обслуживания, основанное на релизе 2.0.0 GA. Это значительное обновление устраняет более восьмидесяти проблем и включает часто запрашиваемые функции с момента общего выпуска. Релиз включает исправления нескольких критических уязвимостей безопасности, таких как неограниченная рекурсия и произвольная запись файлов. Перед обновлением пользователи должны знать о незначительных изменениях, включая прекращение поддержки устаревших моделей Mistral AI и переименование модуля автоконфигурации памяти чата Redis. Строгий режим вызова инструментов OpenAI теперь по умолчанию отключен (false), а медиа-билдеры теперь используют типизированные перегрузки данных для ясности. DeepSeekApi был пересмотрен в соответствии с соглашениями других клиентов API, а векторное хранилище Couchbase теперь использует управляемый Spring Boot клиент Couchbase. Новые возможности в этом релизе включают настраиваемые лимиты вызовов инструментов на запрос для предотвращения бесконечных агентских циклов и исключение при превышении этих лимитов. Аудиофункциональность OpenAI теперь поддерживает потоковую передачу и включает расширенные параметры для транскрипции. Google GenAI получает поддержку ToolChoice и возможности генерации изображений, в то время как PagePdfDocumentReader позволяет загружать определенные диапазоны страниц. Разрешение региона AWS теперь соответствует правилам SDK по умолчанию, улучшая согласованность с другими компонентами стека AWS. Были внесены значительные улучшения надежности потоковой передачи и вызовов инструментов, включая лучшее управление дельтами и отменой. Память чата и векторные хранилища также получили различные исправления ошибок и усиления для повышения стабильности и функциональности в различных интеграциях.
Релизный поезд Spring Cloud 2025.1.3 теперь общедоступен, доступен из Maven Central, с примечаниями к выпуску, содержащими дополнительную информацию. Этот релиз построен на основе Spring Boot 4.0.8. В различных модулях внесены значительные изменения и критические исправления безопасности. Spring Cloud Circuitbreaker больше не использует стандартную конфигурацию TimeLimiterConfig в Resilience4JCircuitBreakerFactory. Spring Cloud Commons исправил уязвимость CVE-2026-59284, обновил Bouncycastle и улучшил сброс конфигурации свойств. Spring Cloud Config устраняет несколько CVE (2026-47836, 2026-47837, 2026-47894, 2026-59315) и теперь поддерживает searchPaths в стиле Git в AWS S3. Spring Cloud Function устраняет несколько CVE (2026-59291, 2026-59297, 2026-59298, 2026-59299, 2026-59300, 2026-59301), связанных с чтением файлов, SSRF, фильтрацией заголовков, отравлением функций и логированием конфиденциальных данных. Spring Cloud Gateway исправляет CVE-2026-47879, связанную с SSRF и доступом к нативным файлам, и добавляет поддержку отсрочки повторных попыток MVC. Spring Cloud Stream устраняет CVE (2026-59302, 2026-59303, 2026-59304, 2026-59305, 2026-59306), касающиеся логирования конфиденциальных данных, размера кэша, кэширования типов содержимого, проблем с перехватчиками и уязвимостей десериализации. Таблица содержит обновленные версии различных модулей в этом релизе. Приветствуются отзывы через GitHub, Gitter, Stack Overflow или Twitter. Предоставлены инструкции по интеграции с Maven и Gradle для использования сообществом.
Первый релиз-кандидат Spring AMQP 4.2 теперь доступен в Maven Central. Этот релиз также включает исправления ошибок и зависимостей в версиях 4.1.1 и 4.0.5. Были устранены несколько критических CVE, включая уязвимости, связанные с распаковкой сообщений, проверкой имени хоста TLS, удаленным завершением работы JVM через десериализацию, раскрытием паролей и пополнением кредита канала. Ключевые изменения в 4.2.0-M1 включают отказ от RestTemplateNodeLocator в пользу RestClientNodeLocator. Релиз представляет поддержку маршрутизации AmqpConnectionFactory для повышения гибкости. Теперь он позволяет переопределять размер пакета и время ожидания получения для каждого слушателя в @RabbitListener. Проверка имени хоста для SSL-соединений теперь всегда включена, а связанная опция enableHostnameVerification была объявлена устаревшей. Более подробную информацию об этих изменениях можно найти в документе "Что нового в 4.2". Команда активно планирует будущие релиз-кандидаты и приветствует любые отзывы или предложения.
Команда Spring Integration рада объявить о первом предварительном выпуске новой минорной версии Spring Integration 7.2. Этот первый предварительный выпуск уже доступен в Maven Central. Помимо новой минорной версии, также доступны выпуски 7.1.1 и 7.0.6, содержащие критические исправления ошибок и обновления безопасности. В этих выпусках устранены несколько распространенных уязвимостей и угроз (CVE). Эти исправления включают проблемы, связанные с подтверждением UDP-адаптера, пропуском заголовков, ограничениями трансформатора распаковки и версиями протокола SMB. Улучшения безопасности также устраняют потенциальные уязвимости удаленного выполнения кода и отказа в обслуживании. Среди заметных изменений в предварительном выпуске 7.2.0-M1 — поддержка простого издателя Spring AMQP. JdbcMetadataStore был обновлен для корректной обработки хранимых значений NULL. Кроме того, конфигурации, полагающиеся на RestTemplate для исходящих HTTP-шлюзов, теперь устарели. Команда приветствует отзывы и идеи для будущих предварительных выпусков. Более подробную информацию можно найти в документации "Что нового в 7.2".
На этой неделе в Spring освещаются новые разработки и ресурсы для разработчиков Spring. Видеоурок посвящен интеграции мультиарендности с использованием Spring Security, OAuth и Arconia, причем Arconia выпустила соответствующее обновление. Ayush Shrivastava предлагает руководство по созданию агентов с помощью Spring AI, дополняющее отличную серию рецептов Craig Walls. Последний материал Craig Walls по Spring AI объясняет рассуждение и действие (ReAct) и графовые агентские рабочие процессы с помощью LangGraph4j. Julien Dubois поддерживает интересный проект Spring Boot UI. Spring FlashAPI, общественный проект, генерирует REST API непосредственно из JPA-сущностей без необходимости использования репозитория Spring Data. Доступен Embabel 1.5.0, предлагающий движок агентских рабочих процессов, построенный на Spring AI, с соответствующими сообщениями, обновленными Craig Walls. Проект spring-ai-privacy-guardrails фокусируется на токенизации PII в рамках области запроса и раскрытии с минимальными привилегиями. Рекомендуется руководство по null-безопасности с JSpecify и Spring для более безопасных практик кодирования. Наконец, в Bootiful Podcast обсуждались риски ИИ в корпорациях, а видео демонстрирует последний выпуск JobRunr.
В этом выпуске "Весенних часов приема" Дэн Вега и ДаШон Картер обсуждают экосистему Spring. К ним присоединяется специальный гость Дэнни Томпсон, старший разработчик-адвокат в Atlassian. Дэнни также является соведущим подкаста The Programming Podcast и основателем конференции The Commit Your Code Conference. Кроме того, он является соавтором новой книги "Руководство разработчика по ИИ: практическое руководство для работающего разработчика". В беседе будет рассмотрен переход Дэнни от работы на заправках к разработке программного обеспечения. Они также обсудят организацию конференции, весь доход от билетов которой направляется на благотворительность. Ключевой темой будет то, как разработчики могут создавать системы ИИ без формального образования в области науки о данных. Зрители смогут принять участие в прямом эфире и задать вопросы. После этого выпуск будет доступен в записи на подкаст-платформах. В примечаниях к выпуску приведены ссылки на книгу, конференцию, подкаст и работы Дэнни Томпсона.
"На этой неделе в Spring освещается недавняя активность сообщества и предстоящие события. Автор посетит JavaZone в Осло и конференцию IntelliJ IDEA в Амстердаме. На прошлой неделе было представлено видео о распределенном движке планирования заданий JobRunr. В эпизоде Bootiful Podcast обсуждались RabbitMQ, Valkey, GemFire и Data Flow с Грегори Грином. Вышло новое видео о развертывании агентов Spring AI в AgentCore. Выпущена версия 2.1.0 Spring AI AgentCore. Крейг Уоллс поделился идеями о том, как сделать агентов Spring AI контекстно-зависимыми. В интервью с Себастьеном Делезом обсуждались Spring Framework, Spring AOT, Kotlin и Spring AI. Были рассмотрены последствия использования виртуальных потоков в проектах Java 24. Broadcom, работодатель команды Spring, присоединился к Open Secure AI Alliance. Рекомендуется видео "From Brackets to Beans to Boot" для обучения. Наконец, в прямом эфире была продемонстрирована оптимизация потребления токенов с помощью Spring AI."
На этой неделе в Spring освещаются последние достижения и обсуждения в экосистеме Spring. Новый сервер Spring Tools MCP теперь доступен, улучшая опыт разработчиков в IDE, таких как VS Code и Eclipse. Вебинар будет посвящен новой поддержке разработчиков Spring в JetBrains IntelliJ IDEA, а также упоминается интервью с JetBrains на шоу Marco. Tanzu, где базируется команда Spring, теперь поставляет зависимости, соответствующие SLSA Level 3, что подробно описано в посте Purnima Padmanabhan. Вновь возникли дискуссии о динамической мультиарендности с Spring Boot. Craig Walls опубликовал несколько постов о Spring AI, включая визуализацию графов рабочих процессов и сохранение данных с помощью ChatMemory и JDBC. В недавнем выпуске Bootiful Podcast участвовал Java Developer Advocate Billy Korando, обсуждавший Java 27. Обновления в Spring Batch 4.1 включают поддержку репозиториев на основе MongoDB, продемонстрированную в видео. Курс по основам Spring Boot охватывает использование Hibernate. Наконец, новая встраиваемая поисковая система векторов от Brian Sam-Boden предлагает простую интеграцию со Spring AI.
Автор в отпуске, наслаждается кофе у воды, чередуя программирование, обучение и плавание. Еженедельное обновление "This Week in Spring" насыщено новым контентом. Видео предлагает подробный обзор основ Spring, от бинов до Spring Boot. Обнаружен новый курс Udemy по Spring AI.Статья подробно описывает создание AG-UI с использованием Java SDK. SivaLabs предлагает пост о создании чат-приложений с помощью Spring AI. Статья за платным доступом обсуждает эффективное использование Spring AI вместо прямых HTTP-запросов к моделям.Обсуждение на итальянском языке посвящено реализации RAG с помощью Spring AI. Также была найдена презентация о создании с использованием Spring AI и Embabel. Проект Capstead, предлагающий управление и наблюдаемость для ИИ-возможностей, особенно созданных с помощью Spring AI и Spring Boot, является новым открытием.В прошлом выпуске "A Bootiful Podcast" Расс Майлс обсуждал продуктивное взаимодействие с ИИ. Наконец, автор "Spring in Action" Крейг Уоллс опубликовал пост о постоянной памяти чата с помощью Spring AI.
Java 27 готовится к выходу в сентябре, вызывая ажиотаж. Автор только что закончил расширенный семинар на UberConf в Денвере, наслаждаясь общением. Несмотря на долгий день, экосистема Spring продолжает стремительно развиваться. Новое видео объясняет мотивы и подходы к разработке на Spring Framework. В прошлой серии "A Bootiful Podcast" вышло интервью с членом команды Spring Boot Морицем Хальбриттером. Лоик Матье подробно описал новые возможности Java 27 в недавнем посте. Интервью Грегора Хоппе о роли архитектора было отмечено как обязательное к прочтению. Крейг Уоллс опубликовал два проницательных поста: один о применении семантических ограждений и другой о защите вывода LLM. Выпущен Spring AI AgentCore 2.0.0, получивший положительные отзывы. Статья о масштабировании в реальном времени Java-приложений также была хорошо принята. InfoQ ранее опубликовал материал о концепциях в AI-приложениях со Spring Boot, выходящих за рамки RAG.
На этой неделе в Spring произошло несколько интересных обновлений и объявлений для сообщества. В Spring Initializr добавлен распределенный движок выполнения заданий JobRunr, что упрощает разработчикам начало работы с инструментом. В недавней статье Крейга Уоллса исследуется использование нескольких крупных языковых моделей с Spring AI, предоставляя ценные сведения для разработчиков. Также была опубликована статья об использовании Spring для Apache Kafka с очередями мертвых писем Kafka Streams, предлагая полезный ресурс для тех, кто работает с Kafka. Мориц Халбриттер, член команды Spring Boot, прочитал лекцию о том, как Spring Framework 7 и Spring Boot 4 могут помочь выявить и устранить нулевые указатели. Spring Cloud Contract переходит в новое место расположения в Stubborn.sh, где он продолжит быть важным инструментом для разработчиков. В недавнем эпизоде подкаста A Bootiful Podcast ведущий беседовал с Себастьеном Делезом, участником Spring Framework и Spring AI. Была опубликована учебная программа по аннотациям MCP в Spring AI, предоставляющая полезное руководство для разработчиков. Также было выделено введение Spring AI, демонстрирующее его потенциал для пользы сообществу Spring. В целом, сообщество Spring процветает, и поставщики, такие как Confluent, компания, стоящая за Apache Kafka, сосредоточены на том, как их продукты могут поддерживать и улучшать экосистему Spring.
Spring Cloud Contract, важный инструмент для взаимодействия микросервисов, претерпевает значительные изменения. Техническое обслуживание, поддержка и владение теперь официально переданы его создателю, Марцину Гжещаку, под новым проектом Stubborn.sh. В связи с этим Spring Cloud Contract будет исключен из всех будущих релизов Spring Cloud. Дальнейшие обновления или техническое обслуживание проекта в рамках существующих активных релизов не будут предоставляться. Разработчикам, использующим Spring Cloud Contract, настоятельно рекомендуется спланировать переход на Stubborn.sh. Это гарантирует, что они смогут продолжать получать важные обновления, исправления ошибок и постоянную поддержку. Марцин Гжещак, бывший член команды Spring и первоначальный руководитель проекта, имеет все возможности для дальнейшего развития проекта. Команда Spring выражает глубокую благодарность за его вклад и считает, что возвращение к истокам является оптимальным путем. Они с энтузиазмом относятся к дальнейшему развитию проекта под его руководством. Команда Stubborn.sh опубликовала официальное объявление с дополнительной информацией.
Автор статьи - поклонник Spring, который с января 2011 года пишет еженедельный обзор под названием "Эта неделя в Spring". Автор только что закончил тур по Азии и сейчас находится в отпуске в Японии, где планирует отдохнуть и узнать о новых разработках в мире Spring. Microsoft написала пост в блоге о новом выпуске Spring AI 2.0 и его интеграции с Azure CosmosDB. Крейг Уоллс также написал рецепт о использовании голоса с Spring AI и ElevenLabs Voices. Выпущена последняя версия Spring Boot - 4.1, в которой появились новые функции и патчи для CVE, и пользователям рекомендуется обновить свой код как можно скорее. Автор объясняет процесс обнаружения, раскрытия и исправления уязвимостей, а также то, как ИИ упростил этот процесс, но также увеличил объем CVE. Автор также упоминает некоторые новые функции в Spring Boot 4.1, включая репозитории Spring Batch с поддержкой MongoDB и автоматической настройки. Кроме того, автор выделяет некоторые другие интересные статьи и подкасты, включая пост в блоге о самокорректирующемся структурированном выводе в Spring AI 2.0 и эпизод подкаста о состоянии CVE. Автор также упоминает некоторые другие ресурсы, включая японскую серию о Spring Boot и пост о построении навыков агентов с помощью Spring AI. В целом, статья предоставляет обновление о последних разработках в экосистеме Spring и призывает пользователей оставаться в курсе последних выпусков и патчей безопасности.
Команда объявляет о доступности Spring Data 2025.0.13, который, как ожидается, станет последним открытым релизом поколения Spring Data 3.5.x. Этот сервисный релиз содержит только исправления регрессий, и пользователям рекомендуется обновиться до последнего релиза 4.0.x или 4.1.x как можно скорее. Spring Boot 3.5.16 запланирован для включения этого релиза Spring Data. Новый релиз включает в себя различные модули, такие как Spring Data Commons, Spring Data JPA и Spring Data MongoDB, каждый со своей документацией и журналом изменений. Spring Data для Apache Cassandra, Spring Data KeyValue и Spring Data Neo4j также входят в этот релиз. Кроме того, Spring Data LDAP, Spring Data REST и Spring Data Redis были обновлены до версии 3.5.13. Spring Data Elasticsearch и Spring Data Couchbase были обновлены до версии 5.5.13, а Spring Data Relational - до версии 3.5.13. Примечания к релизу и документация для каждого модуля доступны для просмотра пользователями. Пользователям рекомендуется обновиться до последней версии, чтобы воспользоваться исправлениями и улучшениями. Команда рекомендует пользователям рассмотреть возможность обновления до последнего релиза 4.0.x или 4.1.x при первой возможности, чтобы обеспечить наличие последних функций и исправлений.
Большие языковые модели, хотя и мощные, испытывают трудности с структурированными данными для интеграции программного обеспечения. Структурированный вывод Spring AI устраняет этот пробел, позволяя моделям производить текст, соответствующий определенной схеме, который затем парсируется в типизированные объекты. Spring AI 2.0 вводит два ключевых улучшения: структурированный вывод, родной для провайдера, и самокорректирующуюся валидацию схемы. Существующий код остается совместимым из-за неизменных значений по умолчанию.Для генерации структурированного вывода разработчики определяют запись Java, а затем используют метод .entity(), чтобы указать целевой тип. Этот процесс внутренне генерирует схему JSON из записи, добавляет ее к подсказке и парсит JSON-ответ модели обратно в желаемый объект. До Spring AI 2.0 этот процесс не имел гарантий, что приводило к потенциальным ошибкам парсинга, если модели отклонялись от схемы.Переключатель .validateSchema() активирует самокорректирующуюся петлю повторных попыток, автоматически проверяя ответ модели на соответствие схеме и повторно выдавая подсказку с конкретной обратной связью об ошибках, если проверка не проходит. Для более сильных гарантий .useProviderStructuredOutput() использует функции API, специфичные для провайдера, для обеспечения соответствия схеме на уровне источника. Это минимизирует неправильно сформированный вывод, предотвращая выпуск недопустимых ответов с самого начала.Эти две функции можно объединить для максимальной устойчивости, с родным выводом провайдера в качестве основного ограничения и валидацией схемы в качестве резервного варианта. Для общих типов, таких как списки и карты, вместо простого класса используется ParameterizedTypeReference. Метод .responseEntity() позволяет получить доступ как к парсированному объекту, так и к сырому ChatResponse для метаданных.Когда встроенные конвертеры недостаточны, пользовательские реализации StructuredOutputConverter могут обрабатывать нетипичную обертку JSON или совершенно другие форматы, такие как YAML или CSV. Это обеспечивает дополнительную гибкость для различных потребностей интеграции.
CdXz5zHNQW_ujOXatEKZz.png
Spring Batch исторически полагался на SQL-базы данных для своего JobRepository для хранения состояния выполнения задания. Это требование сохранялось даже для пользователей, в основном работающих с базами данных NoSQL, такими как MongoDB. Последние версии Spring Batch разъединили JobRepository с JDBC, а Spring Boot 4.1 вводит автоматическую настройку для MongoDB. Это позволяет хранить метаданные пакета в MongoDB, исключая необходимость в отдельной базе данных SQL. В статье демонстрируется полный пример задания Spring Batch, использующего MongoDB для своего JobRepository. Пример настраивает MongoDB и PostgreSQL с помощью Docker Compose. Он определяет задание ETL, которое читает данные о клиентах из CSV и записывает их в таблицу PostgreSQL. Это достигается за счет двухэтапного задания: одного для сброса таблицы назначения и другого для фактического передачи данных. Шаг передачи данных использует FlatFileItemReader, простой процессор и JdbcBatchItemWriter. Механизмы отказоустойчивости и повторных попыток настроены для этого шага на основе фрагментов. Затем приложение запускается, и все детали выполнения задания записываются в MongoDB. Наблюдаемость улучшается с помощью интеграции OpenTelemetry и Grafana. В статье также затрагивается возможность работы Spring Batch с родными образами GraalVM и вводятся ленивые соединения с источником данных для оптимизации. Основным выводом является то, что Spring Batch теперь без проблем интегрируется с MongoDB, позволяя разработчикам использовать свою предпочитаемую базу данных без компромиссов.
"This Week in Spring" ведет прямую трансляцию из Нью-Дели, Индия, подчеркивая насыщенную неделю, наполненную обновлениями релизов. Отложенный релиз поезда за май наконец-то прибыл, и Spring Boot 4.1.0 является значительной новой версией. Spring AI 2.0 также теперь доступен, предлагая интересные достижения, такие как семантический кэш и вызов инструментов. В недавнем эпизоде подкаста Bootiful была представлена интервью с Робом Винчем, руководителем Spring Security. Обновление Spring Tools 5.2.0 предлагает улучшенный опыт разработки для VS Code и Eclipse. Несколько других проектов Spring получили обновления, включая Spring AI версии 1.0.9 и 1.1.8, и Spring Cloud версии 2025.0.3 и 2025.1.2. Spring Shell, Spring Modulith и Spring Batch также увидели новые релизы. Другие заметные обновления включают Spring Vault, Spring для Apache Pulsar, Spring Integration, Spring Web Flow, Spring Web Services и Spring Authorization Server. Spring Data достигла общей доступности с релизом 2026.0.0, наряду с другими обновлениями, связанными с данными. Наконец, Spring REST Docs, Spring Security, Spring Session, Spring AMQP, Spring для Apache Kafka, Spring LDAP и Spring Retry также были обновлены.