RSS Весна Заметка

RSS Весна

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

Трэд заметок

"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 также были обновлены.
Выпущен релиз Spring Tools 5.2.0 для Visual Studio Code, Cursor, Eclipse, Theia и Claude Code. Представлен новый экспериментальный плагин Claude Code с встроенным сервером MCP для аналитики проектов Spring и интерактивных навыков. Этот сервер предоставляет LLM информацию о проблемах, исправлениях и индексации, специфичную для Spring. Сам встроенный сервер MCP был улучшен, получив больше возможностей и автоматическую конфигурацию для Eclipse Copilot. Релиз также включает поддержку индексации и валидации проектов Spring AI. Улучшена валидация версий Maven репозитория, учитывающая настроенные репозитории помимо GA релизов. Новая поддержка типобезопасных ссылок на свойства позволяет автоматически рефакторить строковые свойства. Дистрибутив Spring Tools для Eclipse обновлен до Eclipse 2026-06. Подробные изменения доступны в заметках к релизу. Загрузки и ссылки на маркетплейс можно найти на сайте Spring Tools. Следующий релиз, 5.3.0, запланирован на середину сентября 2026 года.
Spring AI 2.0 перерабатывает вызовы инструментов, делая их основной, компонуемой функцией в цепочках советников. Агенты теперь используют эту возможность для поиска информации и действий, направленных на достижение цели. Инструменты определяются с помощью аннотации @Tool над методами, а Spring AI автоматически генерирует JSON-схемы для параметров. ToolCallingAdvisor оркестрирует цикл выполнения инструментов, рекурсивно вызывая LLM до тех пор, пока не будут сгенерированы новые вызовы инструментов. Размещение советников памяти внутри этого цикла позволяет захватывать более богатый контекст, сохраняя полные истории запросов и ответов инструментов. Однако это требует специальных реализаций ChatMemoryRepository, таких как InMemoryChatMemoryRepository. Для больших наборов инструментов ToolSearchToolCallingAdvisor предлагает инкрементальное раскрытие инструментов, чтобы избежать раздувания контекста. Этот советник использует индекс инструментов для постепенного раскрытия релевантных инструментов на основе запросов на естественном языке. Дополнение аргументов инструментов позволяет динамически расширять схемы входных данных инструментов без изменения кода инструментов, что полезно для внутреннего мышления. Инструменты MCP объединяют удаленные и локальные определения инструментов, позволяя приложениям потреблять или предоставлять управляемые Spring инструменты через серверы MCP. Как локальные аннотации @Tool, так и удаленные инструменты MCP используют один и тот же интерфейс ToolCallback, бесшовно интегрируя их в цепочку советников.
CdXz5zHNQW_yrI1Czp9Eu.png
Выпущен Spring AI 2.0.0, который обеспечивает значительные улучшения и новую базовую линию для разработки приложений с использованием ИИ. Этот релиз построен на основе Spring Boot 4 и Spring Framework 7, отличается улучшенной сериализацией JSON с Jackson 3 и полными аннотациями null-безопасности, повышающими надежность кода. Обработка опций была переработана для ясности и неизменяемости, а конструкторы заменены билдерами. Основной проект теперь сосредоточен на усовершенствованном наборе хорошо поддерживаемых поставщиков чат-моделей, таких как OpenAI, Anthropic и Google GenAI, используя SDK поставщиков для лучшей адаптивности. Сотрудничество с сообществом было усилено обновленными рекомендациями в файле CONTRIBUTING.md. Возможности агентного ИИ были значительно улучшены: циклы выполнения инструментов теперь являются первоклассными компонуемыми компонентами в цепочке советников. Новыми дополнениями являются унифицированный вызов инструментов, прогрессивное раскрытие инструментов для масштабирования до сотен инструментов и механизмы структурированного самокорректирующегося вывода. Релиз также представляет расширения сообщества для управления памятью диалогов на основе событий и агентных паттернов. Интеграция протокола контекста модели (MCP) улучшена благодаря официальному Java SDK, программированию на основе аннотаций и новым реализациям транспорта, включая потоковый HTTP. Также унаследованы корпоративные функции, такие как span'ы Micrometer, метрики OpenTelemetry и безопасность OAuth 2.0. Spring AI 2.0 призван значительно улучшить опыт разработчиков и проложить путь для будущих функций ИИ.
Релиз Spring Cloud 2025.1.2 теперь доступен в общем доступе. Этот релиз совместим с Spring Boot 4.0.7 и добавляет поддержку Spring Boot 4.1.0. Были внесены значительные обновления в несколько модулей. Spring Cloud Kubernetes теперь перемещает обнаружение Fabric8 в листнеры и добавляет фильтр для меток сервисов. Spring Cloud Config улучшает обработку отрицательных профилей в файлах YAML в бакете S3. Spring Cloud Gateway устраняет уязвимость CVE и вводит новый фильтр StripContextPath, а также настраивает кодеки для фильтров тела. Несколько других модулей, включая Netflix, Stream и Config, получили обновления до версий 5.0.x. Примечания к релизу предоставляют более подробную информацию об этих изменениях. Отзывы о этом релизе приветствуются через различные каналы сообщества. Предоставляются инструкции по интеграции релиза в проекты Maven и Gradle с помощью управления зависимостями. Обновлен файл spring-cloud-dependencies BOM до версии 2025.1.2.
Spring Boot 4.1.0 официально выпущен и теперь доступен в Maven Central. Это значительное обновление приносит многочисленные улучшения, инновационные функции и обновленные версии зависимостей. Оно также включает все исправления ошибок, улучшения документации и патчи безопасности, унаследованные от предыдущей версии, Spring Boot 4.0.7. Основные особенности этого нового выпуска включают интегрированную поддержку Spring gRPC. Выпуск также вводит обновленные свойства конфигурации Jackson, предлагая улучшенные варианты настройки. Новая функция для смягчения уязвимости SSRF в HTTP-клиенте реализована через InetAddressFilter. Наблюдаемость претерпела несколько улучшений, включая обновленную интеграцию с OpenTelemetry. Кроме того, Log4j теперь пользуется поддержкой ротации файлов. Для всестороннего обзора всех новых функций, директив обновления и уведомлений об устаревании пользователи поощряются консультироваться с официальной вики.
Выпуски обслуживания 2025.1.5 и 2025.0.11 теперь доступны. Эти выпуски включают обновления зависимостей и выбранные улучшения. Что самое главное, они устраняют многочисленные уязвимости безопасности, связанные с CVE. Эти уязвимости включают проблемы с отказом в обслуживании при разрешении пути свойства и связывании данных. Они также исправляют потенциальные риски внедрения SpEL в различных модулях Spring Data. Конкретные исправления направлены на компоненты MongoDB, Relational, KeyValue и REST. Spring Data REST также получает исправления для обхода JSON Patch и раскрытия внутренних данных. Будущие выпуски Spring Boot будут включать эти обновления в течение следующей недели. Выпуски включают обновленные версии для Spring Data Commons, JPA, MongoDB, Cassandra и многое другое. Конкретные номера версий указаны как для линии 2025.1, так и для линии 2025.0. Ссылки на Javadoc, документацию и журналы изменений доступны для каждого модуля.
Команда инженерии Spring AI объявила о выпуске Spring AI 2.0.0-RC2, который теперь доступен в Maven Central. Этот выпуск включает важные улучшения, повышение стабильности и исправления ошибок, что делает его значительным обновлением для пользователей. Основное внимание в этом выпуске уделяется ключевым улучшениям, таким как настройка клиентов Anthropic и OpenAI, а также восстановление совместимости с версиями Spring Framework ниже 7.0.4. Выпуск также включает исправления ошибок, включая исправления обработки опций модели BedrockProxyChatModel и проблем с OllamaChatModel. Кроме того, выпуск решает проблемы с контентом повторного рассуждения в истории помощника OpenAI и заменой опций вместо слияния в ChatModel. Команда Spring AI также обеспечила автоматическую регистрацию ToolCallingAdvisor для поддержки инструментов, внедряемых во время выполнения. Полные заметки к выпуску Spring AI 2.0.0-RC2 доступны для ознакомления пользователями. Команда Spring AI продолжит сосредотачиваться на улучшении разработки приложений ИИ с помощью Spring Boot, а будущие версии будут основаны на фундаменте, заложенном в этом выпуске. Пользователи могут оставаться в курсе последних событий и вносить свой вклад в проект, посетив репозиторий GitHub или присоединившись к обсуждению в каналах сообщества. Страница проекта, репозиторий GitHub и документация для Spring AI 2.0.0-RC2 доступны в качестве ресурсов для пользователей.
Spring Data 2026.0, также известная как версия 4.1, официально выпущена и доступна в Maven Central. Этот релиз вводит несколько значительных улучшений в различных модулях. Одной из ключевых тем является реализация типобезопасных путей свойств для улучшения безопасности и читаемости кода. Слушатели сообщений Redis Pub/Sub были аннотированы, а модуль Redis был перенесен на UnifiedJedis. Модуль MongoDB теперь имеет пересмотренный API пакетных операций, поддерживающий операции записи в несколько коллекций. Для JDBC и R2DBC добавлена функциональность одностатейного upsert для агрегатных корней. Более подробную информацию об этих функциях можно найти на странице вики Release Notes. Предоставлены отдельные журналы изменений и ссылки на документацию для Spring Data Commons, JPA, MongoDB, Cassandra, KeyValue, Neo4j, LDAP, REST, Redis, Elasticsearch, Couchbase и Relational. Это обновление означает значительный шаг вперед для экосистемы Spring Data.
Spring Framework выпустил версии 7.0.8 и 6.2.19. Эти обновления устраняют значительное количество общих уязвимостей и подверженностей (CVE). Уязвимости охватывают различные модули и функциональные возможности фреймворка. Несколько CVE связаны с атаками типа "отказ в обслуживании" (DoS), в том числе на многокомпонентные запросы, версионированные ресурсы, AntPathMatcher и целочисленные переполнения в выражениях SpEL. Также устраняется раскрытие информации, в частности, касающееся кэширования статических ресурсов. Фиксация сеанса и предсказуемые идентификаторы сеанса в модуле WebSocket покрываются отдельными CVE. Также исправлены уязвимости обхода пути через версионированные статические ресурсы. Уязвимости межсайтового скриптинга (XSS) были устранены в отношении JavaScriptUtils и тегов форм JSP. Обновления также исправляют проблемы обхода фильтров безопасности в WebFlux Kotlin Router DSL. Уязвимости открытого перенаправления и произвольный вызов методов в выражениях SpEL являются одними из других устраненных проблем безопасности. Также смягчены проблемы подмены многокомпонентных запросов и подделки запросов на стороне сервера. Наконец, исправлена небезопасная десериализация через преобразователи Jackson JMS. Spring Framework 6.2.19, вероятно, является последним релизом своего поколения, и пользователям рекомендуется обновиться до 7.0.x.
Команда инженерии Spring AI объявила о выпуске Spring AI 2.0.0-RC1, который является вехой стабилизации API на пути к 2.0.0 GA. Этот выпуск включает унифицированное выполнение инструментов для всех моделей, при этом выполнение инструментов теперь обрабатывается внешне через ChatClient с ToolCallingAdvisor. Свойство internalToolExecutionEnabled было удалено, а API toolNames и SpringBeanToolCallbackResolver заменены явными бобами ToolCallback. ToolCallAdvisor был переименован в ToolCallingAdvisor, и был введен новый ToolSearchToolCallingAdvisor для поиска инструментов по требованию. Память советников теперь размещается вне ToolCallingAdvisor по умолчанию, а DEFAULT_CHAT_MEMORY_PRECEDENCE_ORDER был понижен. Выпуск также включает улучшения памяти чата, такие как захват границы хода в MessageWindowChatMemory и избежание дублирования памяти чата в подсказках инструментов. Были добавлены улучшения структурированного вывода, включая возможность доступа к полю временной метки из таблицы spring_ai_chat_memory программно. Выпуск также включает очистку API и кода, обновления моделей, исправления ошибок, обновления документации и обновления зависимостей. Команда Spring AI благодарит всех участников, работавших над этим выпуском, и ресурсы доступны на странице проекта, GitHub и Stack Overflow. Примечания к выпуску и документация для 2.0.0-RC1 также доступны. В целом, этот выпуск предоставляет ряд улучшений и расширений фреймворка Spring AI и является важным шагом на пути к окончательному выпуску 2.0.0 GA.
Последняя часть 'Эта неделя в Spring' вышла, в которой обсуждается задержка выпусков мая и предоставляется обновление по новому графику выпусков. Майская версия Spring была перенесена на 8-14 июня из-за необходимости в патчах безопасности. Большинство проектов в портфолио Spring требуют обновлений для этих новых патчей безопасности, и рекомендуется обновиться как можно скорее. Причина задержки - быстрый рост уязвимостей и эксплойтов, когда в марте 2026 года было подано 55 новых отчетов о безопасности, в результате чего в апреле было объявлено 26 новых CVE. Команда Spring работает над тем, чтобы соответствовать ситуации и предоставлять необходимые обновления пользователям. В других новостях последний эпизод подкаста 'A Bootiful Podcast' включает интервью с Мартейном Вербургом из Microsoft. Доступны новые выпуски, включая Spring AI 2.0.0-M8, Spring AI 1.0.8 и Spring AI 1.1.7. На Coursera доступен новый курс по Spring AI, и запись начинается сразу. Кроме того, доступны несколько интересных докладов и проектов, включая доклад о создании агентов ИИ с помощью Spring и MCP, и проект Spring AI Playground. Команда Spring привержена предоставлению необходимых инструментов и ресурсов для того, чтобы пользователи могли оставаться в курсе последних разработок в Spring и ИИ.
CdXz5zHNQW_FLFeoaXx2i.png
Весенний релизный цикл перенесен на 8-14 июня с настоятельной рекомендацией обновить систему до последних патчей безопасности из-за значительного увеличения числа сообщений об уязвимостях. Генеративный ИИ ускоряет вывод продуктов на рынок и повышает качество в различных отраслях, влияя на мир открытого исходного кода как путем содействия разработке, так и путем увеличения объема сообщений о проблемах и уязвимостях, созданных сообществом. Модели ИИ резко снизили порог для выявления потенциальных уязвимостей кода, что привело к всплеску сообщений о безопасности в различных проектах с открытым исходным кодом. Этот наплыв привел к резкому увеличению числа объявленных CVE от Spring, причем в марте и апреле было зафиксировано беспрецедентное количество сообщений о безопасности. Многие из этих сообщений являются дубликатами или недействительными находками, но ожидается, что общий рост сохранится в течение некоторого времени. Пользователям Spring настоятельно рекомендуется обновиться до июньских релизов для устранения многочисленных уязвимостей безопасности, даже тех, которые имеют среднюю или низкую степень серьезности, из-за их огромного количества. VMware Tanzu Spring предлагает решения для автоматизации обновлений и обеспечения безопасности и соответствия требованиям пользователей в этом быстро меняющемся ландшафте. Команда Spring продолжает рассматривать сообщения о безопасности посредством мер по раскрытию информации, признавая, что, хотя объем найденных ИИ уязвимостей может в конечном итоге уменьшиться, он вряд ли скоро вернется к историческим нормам. Информация о рекомендациях по безопасности доступна на сайте spring.io/security. Клиенты Tanzu Spring могут воспользоваться доступом к патчам на день 0 и профессиональными услугами для получения помощи.
CdXz5zHNQW_afLOaNbZdf.png
Команда разработчиков Spring AI выпустила версию 2.0.0-M8, которая теперь доступна на Maven Central. Этот релиз включает в себя значительные улучшения, повышение стабильности и исправление критических ошибок. Новые функции включают улучшенное отображение MistralAiApi Jackson и доступ к информации об ограничениях скорости от Anthropic. Было исправлено несколько ошибок, таких как некорректные объявления зависимостей и проблемы с требованиями к ключу API OpenAI. Команда исправила регрессии в транзитивных зависимостях автоматической настройки для обеспечения надлежащей функциональности. Разработка будет продолжать сосредоточиваться на улучшении разработки AI-приложений с помощью Spring Boot. Будущие релизы будут строиться на этой основе с улучшенными возможностями и опытом разработчиков. Команда Spring AI призывает к участию и взаимодействию сообщества. Такие ресурсы, как страница проекта, GitHub и документация, легко доступны. Проект направлен на предоставление всесторонней поддержки разработчикам, создающим AI-приложения в экосистеме Spring.
Spring AI объявила о выпуске версий 1.0.8, 1.1.7 и 2.0.0-M7, которые теперь доступны через Maven Central. Эти выпуски приносят значительные улучшения, повышение стабильности и важные исправления ошибок во всех активных потоках выпусков. В частности, версии 1.1.7 и 2.0.0-M7 включают важные исправления безопасности для устранения CVE-2026-41863. Spring AI 1.0.8 исправляет проблему с RedisVectorStore, где удаления были беззвучно обрезаны до первых 10 сообщений. Spring AI 1.1.7 решает проблемы совместимости с Ollama на родных изображениях GraalVM и проблему с OpenAiChatModel, связанную с удалением фрагментов потоковой передачи. Выпуск 2.0.0-M7 вносит несколько критических изменений, поэтому пользователям следует ознакомиться с заметками об обновлении. Эта версия делает устаревшими транспортные средства SSE в пользу Streamable HTTP в качестве нового протокола сервера по умолчанию. ToolCallAdvisor теперь является стандартным методом для обработки вызовов инструментов, и доступен новый API ToolSpec для программного определения инструментов. Поддержка Gemini обновлена до Gemini 2.5 Flash, а также обновлена библиотека клиента Google BOM. Ключевые исправления ошибок в 2.0.0-M7 включают проблемы с ChatClient#prompt, игнорирующим опции чата, и неправильной обработкой nullable-полей Kotlin. Команда Spring AI привержена постоянному улучшению разработки приложений ИИ в экосистеме Spring Boot. Будущие выпуски будут основаны на этих основах с улучшенными возможностями и лучшим опытом разработки.
Теперь доступны версии Spring AI 1.0.7, 1.1.6 и 2.0.0-M6, предлагающие улучшения и исправления ошибок. Эти выпуски включают в общей сложности 143 улучшения, исправления ошибок и обновления документации. Важно отметить, что выпуски также включают исправления безопасности, устраняющие уязвимости CVE. Основное внимание в выпусках уделяется улучшениям, повышению стабильности, обновлениям документации и повышению безопасности за счет обновления зависимостей. Основное изменение во всех версиях - это отказ от `PromptChatMemoryAdvisor`, требующий явных идентификаторов разговора. Разработчикам необходимо явно указывать идентификаторы разговора в своих приложениях. Несколько изменений влияют на то, как обрабатываются конфигурации, особенно с свойствами OpenAI. Версия 2.0.0-M6 удаляет интеграцию хранилищ векторов для SAP HANA DB и Infinispan. Кодовая база выигрывает от продолжающейся оптимизации с помощью аннотаций безопасности от null. Построитель AssistantMessage был переработан для лучшей поддержки наследования. Включены обновленные SDK для OpenAI и Anthropic. Команда посвящена улучшению разработки приложений ИИ для Spring Boot.
Присоединяйтесь к Дэну Веге и ДаШону Картеру, чтобы получить последние обновления из экосистемы Spring. В этом эпизоде к Дэну и ДаШону присоединяется чемпион Java, чемпион Vaadin и профессиональный эксперт Oracle Саймон Мартинелли, чтобы поговорить о разработке, основанной на спецификациях. Поскольку ИИ меняет способ, которым мы пишем код, Саймон утверждает, что требования, а не код, должны быть единственным источником истины. Мы рассмотрим, как выглядит разработка, основанная на спецификациях, на практике, как она вписывается в рабочий процесс Java и Spring, и как команды могут использовать ее, чтобы перейти от случая использования к работающему коду с ИИ в цикле. Вы можете принять участие в нашей прямой трансляции, чтобы задать вопросы, или посмотреть повтор на вашей предпочитаемой платформе подкастов. Примечания к выпуску Саймон Мартинелли в LinkedIn Саймон Мартинелли в X Разработка, основанная на спецификациях: Как ИИ изменил все (и ничего) Саймона Мартинелли на Spring I/O 2026