Spring АйО


Kanal geosi va tili: Rossiya, Ruscha


Русскоязычное сообщество Spring-разработчиков.
Habr: bit.ly/433IK46
YouTube: bit.ly/4h3Ci0x
VK: bit.ly/4hF0OG8
Rutube: bit.ly/4b4UeX6
Яндекс Музыка: bit.ly/3EIizWy
Чат для общения: @spring_aio_chat
По вопросам сотрудничества: @befayer

Зарегистрирован в РКН
Bog‘liq kanallar  |  O‘xshash kanallar

Kanal geosi va tili
Rossiya, Ruscha
Statistika
Postlar filtri


⚡️⚡️Строки кода стремятся подешеветь до цены токена. Что остается ценным?

Про это — трек «Замысел» 15 октября. Во второй день Joker, посвященный разработке будущего. О том, как человек понимает, почему он называет что-то проблемой, и формулирует свою цель, а не ту, что навязана ему извне. Теперь это общая работа для всех ролей, от разработчика до CEO: шаблонными решениями и готовыми схемами думает модель.

В карточках к посту рассказываем, почему так получилось, и показываем доклады из трека: спикеры расскажут, о чем нужно подумать еще до постановки задачи, и чем будет заниматься новый тип инженера — Context Engineer.

К дискуссиям после докладов — собираем ваши кейсы. Напишите в комментариях поста, если у вас бывало такое:
— агент час работал не над той задачей, потому что задача была сформулирована плохо;
— ускорение одного этапа не сдвинуло общий срок;
— узким местом оказалась не модель или инфраструктура, а знание, которое никто не записал.

Joker 2026 — 14–15 октября, Санкт-Петербург и онлайн.

🌟По промокоду springaio персональные билеты дешевле

▶️ Исследуйте разработку будущего — на сайте Joker.


🙅‍♂️ Не каждый AI-вызов должен генерировать текст

Иногда от модели нужен не красивый ответ, а быстрое решение. Пропустить запрос или заблокировать, выбрать маршрут, оценить результат, отфильтровать документы для RAG.

Для этого появился Spring AI TypeSafe. Проект интегрирует Jev API, который отвечает на типизированные вопросы числовыми значениями и не генерирует текст.

Разбираемся, как поставить быструю и дешёвую проверку перед дорогим вызовом чат-модели и платить по-крупному только тогда, когда это действительно нужно.

🔗 Читать статью


JEP 544: JVM будет сохранять машинный код между запусками

JEP 544 (Ahead-of-Time Code Compilation) предложен в JDK 28, релиз в марте 2027. Это очередной слой AOT-кэша из Project Leyden. В JDK 24 туда попали загруженные и слинкованные классы (JEP 483), в JDK 25 - профили методов (JEP 515). Теперь дошла очередь до самого машинного кода.

Как это работает

На обучающем запуске JVM компилирует горячие методы обычными C1 и C2 и складывает результат в кэш. В рабочем запуске запрос на компиляцию метода закрывается готовым кодом. Процедура та же, что и раньше: -XX:AOTCacheOutput при обучении, -XX:AOTCache в проде. Включать ничего не нужно.

Код из кэша остаётся обычным кодом HotSpot. Если рабочая нагрузка ушла в сторону от обучающей, метод деоптимизируется и перекомпилируется JIT-ом, как любой другой. Профили из JEP 515 при этом продолжают работать: по ним JVM выбирает порядок загрузки кода и пересобирает методы.

Чем AOT-код хуже JIT-кода

JIT компилирует метод, когда нужные классы давно инициализированы. Он подставляет значения static final полей как константы и выбрасывает проверки инициализации. Код из кэша начинает работать раньше, чем классы успели инициализироваться, а значение static final может отличаться от запуска к запуску. Поле приходится читать по-настоящему.

Для методов, которые обращаются к статике других классов, C2 собирает две версии: медленную с проверками инициализации и быструю без них.

Поэтому JIT никуда не уходит. AOT-код даёт быстрый старт, до пика доводит перекомпиляция.

Когда кэш не сработает

Обучающий и рабочий запуски должны совпадать по архитектуре процессора, набору инструкций и сборщику мусора: барьеры GC вшиты в машинный код. Собрали образ на хотсе с AVX-512, pod уехал на узел без него - код из кэша не загрузится. Ошибки не будет, JVM молча перейдёт на интерпретатор и JIT. В кластере с разнородными узлами это легко пропустить.

Поддерживаются x64 и AArch64, из сборщиков - Serial, Parallel, G1 и ZGC.

Цифры

По данным JEP, AOT-кэш без кода сокращает время старта на 50-70%, с кодом - на 65-80%. Основную часть выигрыша на старте дают уже вышедшие JDK 24-26, новый JEP добавляет 10-15 п.п.

Заметнее эффект на прогреве. В PR есть замер на Quarkus-сервисе с двумя ядрами: обычная JVM начинает отвечать быстрее 1 мс после 420 запросов, JDK 26 с AOT-кэшем - примерно после 200, сборка с JEP 544 - чуть позже сотого.

Второй эффект касается CPU. JIT на старте перестаёт отбирать ядра у приложения, и сильнее всего это видно на контейнерах с лимитом в 1-2 CPU. Там, где запас по CPU закладывали под прогрев, его можно будет пересмотреть.

Оценить вклад кода на своём сервисе можно диагностическим флагом:
-XX:+UnlockDiagnosticVMOptions -XX:-AOTCodeCaching

Заодно станет видно, насколько вырос файл кэша.

Что остаётся неудобным

Обучающий запуск. Кэш хорош настолько, насколько нагрузка при сборке похожа на боевую, а готового инструмента для этого нет. Spring Boot и Quarkus умеют записывать кэш при сборке, но прогон реальных сценариев остаётся на вашей стороне. Упрощение этого процесса авторы JEP прямо вынесли за рамки.

JEP: https://openjdk.org/jeps/544


Video oldindan ko‘rish uchun mavjud emas
Telegram'da ko‘rish
🍃 Переписываем всё на Rust, JavaScript — кошмар, AI против Vaadin | Spring АйО Подкаст №74

😉 СМОТРЕТЬ НА YOUTUBE
😄 Чуть позже...
🥰 СМОТРЕТЬ НА RUTUBE
🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ
🤩 СЛУШАТЬ НА SPOTIFY
🤩 СЛУШАТЬ НА APPLE PODCASTS

💬 Аудио версию подкаста можно найти в комментариях


OpenIDE dan repost
Video oldindan ko‘rish uchun mavjud emas
Telegram'da ko‘rish
⚡️ AI-плагин уже в OpenIDE Pro

Вышли новые версии OpenIDE и OpenIDE Pro: AI-плагин теперь доступен всем пользователям OpenIDE Pro.

Claude Code, Codex, OpenCode, Cursor — работайте с любимым агентом прямо в IDE!

Не покидая редактор, можно поставить задачу агенту, посмотреть изменения в коде, запустить приложение и открыть его во встроенном браузере.

Попробовать новые возможности может каждый: OpenIDE Pro на 2 месяца доступна бесплатно и без регистрации.


Скачать: https://openide.ru/download/


🧑‍💻 Скрытая возможность конфигурации Spring Boot, о которой мало говорят

Представим, что у вас есть общий стартер, который подключён к десяткам сервисов. Вы хотите задать в нём общие свойства по умолчанию, но сохранить за каждым сервисом возможность переопределить их в собственной конфигурации.

Положить ещё один application.yml в библиотеку кажется очевидным решением. На практике Spring Boot не объединяет два таких файла так, как можно было бы ожидать. Профиль требует ручной активации в каждом сервисе, @PropertySource имеет неудобный приоритет, а конфигурация через бины появляется слишком поздно для части настроек.

Для этой задачи в Spring Boot есть отдельный механизм: EnvironmentPostProcessor. Он позволяет изменить Environment ещё до создания ApplicationContext, выбрать приоритет источника свойств и при необходимости прочитать, дополнить или переопределить уже существующую конфигурацию.

В новой статье от наших друзей из Axelix мы разберем на реалном примере, как зарегистрировать такой процессор, почему порядок его выполнения критически важен, и какие у него есть ограничения.

🔗 Вот сама статья.


✏️ В JavaDoc предлагают добавить заметки, которые сложно пропустить

В JavaDoc предлагают добавить тег @note. Он позволит выделять важные примечания прямо в документации API.


/**
* {@note (header='Caution:')
* Untrusted input must be verified!}
*/


Стандартный doclet превратит такую запись в отдельный заметный блок. Заголовок можно менять, а через javadoc -tag создавать свои варианты вроде @warning.

Сейчас для подобных вещей приходится использовать обычный текст, HTML или нестандартные теги. @note даст единый способ отделить важное замечание от простыни документации.

Пока это только предложение для JDK 28. Команда OpenJDK собирает обратную связь, поэтому до релиза синтаксис ещё может измениться.

Все для людей!

🔗 Подробности


🔥 Запись открытой лекции уже доступна

Вчера прошла первая открытая лекция курса «Java в продакшене».

Михаил Поливаха разобрал, как сохранить Spring Boot-приложение в рабочем состоянии, когда внешние зависимости тормозят, ошибки распространяются каскадом, сервис не справляется с нагрузкой, а retry из спасателя превращается в поджигателя.

😉 СМОТРЕТЬ НА YOUTUBE
🥰 СМОТРЕТЬ НА RUTUBE

🤓 Погрузиться в тему глубже можно на полном курсе Java в продакшене


🔥 УЖЕ СЕГОДНЯ В 20:00 — БЕСПЛАТНАЯ ЛЕКЦИЯ

Друзья, начинаем через 15 минут!

❓ Тема: «Когда что-то идёт не так. Отказоустойчивость Spring Boot-приложений»

🔗 Подключиться: https://my.mts-link.ru/j/104598363/25496740660

В конце проведём открытую Q&A-сессию. Приходите и приносите свои вопросы!

Весь курс: https://spring-aio.ru/java_in_production


🆕 Вышел Opus 5.5. Уровень Fable за меньшие деньги

Anthropic представила Claude Opus 5.5. По данным компании, модель показывает уровень Fable 5.1, но типичная задача обходится на 40% дешевле, чем у Opus 5. Генерация ускорилась более чем на 30%.

Миллион входных токенов стоит $4, выходных $20, а чтение кеша подешевело до $0,20. Anthropic также обещает более ясные ответы без фирменного «клаудиша».

Модель уже доступна в Claude, API и крупных облаках.

🔗 Анонс


🔥 УЖЕ ЗАВТРА — ОТКРЫТАЯ ЛЕКЦИЯ ДЛЯ ВСЕХ

Завтра, 23 сентября встречаемся на первой ОТКРЫТОЙ ДЛЯ ВСЕХ лекции курса «Java в продакшене». Присоединиться бесплатно может любой!

Поговорим о том, как сохранить Spring Boot-приложение в рабочем состоянии, когда:

• внешние зависимости тормозят;
• ошибки распространяются каскадом;
• сервис не справляется с нагрузкой;
• привычные retry только усугубляют ситуацию.

Разберём Circuit Breaking, Bulkhead, Load Shedding и приоритизацию трафика, с акцентом на реальные сценарии, ограничения и ошибки применения.


❓ Тема: «Когда что-то идёт не так. Отказоустойчивость Spring Boot-приложений»

🎓 Лектор: Михаил Поливаха

🗓 Когда: уже завтра, 23 сентября в 20:00 МСК

🔗 Подключиться к лекции: https://my.mts-link.ru/j/104598363/25496740660

В конце будет открытая Q&A-сессия.

🤓 А если захотите погрузиться в тему глубже, присоединяйтесь ко всему курсу:
https://spring-aio.ru/java_in_production


⚡️⚡️Joker 2026: что происходит с профессией разработчика

Индустрия разработки проходит через серьезный переломный момент. Меняются не только инструменты и фреймворки, но и привычный подход к работе.

Поэтому в этом сезоне меняется и Joker: первый день традиционно посвящен Java — Core Java, рантайму и работе на уровне железа. А во второй день будем обсуждать, как прямо сейчас меняется сама инженерная практика.

В программе — Context Engineering, команды из людей и ИИ-агентов, Self-Evolving Agents, новые подходы к архитектуре и работе с моделями, а также вопросы ответственности и роли эксперта.

Собрали главные темы второго дня в карточках.

🌟С промокодом: springaio персональные билеты дешевле

Полное расписание и билеты — на сайте.


🧑‍💻 Трагедия версионирования ПО

Мы привыкли читать версии по SemVer. Появились несовместимые изменения, значит пора повышать major. Сломалась совместимость после 4.1.0? Ждём 5.0.

Со Spring Boot так не работает.

Проект использует привычный формат major.minor.patch, но не следует SemVer буквально. Патч-релизы должны оставаться совместимыми, а вот minor-релизы могут содержать несовместимые изменения. Номер версии здесь показывает не строгий контракт, а ожидаемую сложность обновления.

И это не странность Spring Boot. Версионирование связано с релизным циклом, политикой совместимости, сроками поддержки и тем, как часто пользователи готовы обновляться.

Поэтому выбор схемы версий оказывается архитектурной задачей, а не упражнением с тремя цифрами.

Хороших разборов этой темы мало, поэтому наш эксперт, Михаил Поливаха подготовил свой.

🔗 Читать материал: https://habr.com/ru/companies/spring_aio/articles/1084716/


OpenIDE dan repost
⚡️ Вышла OpenIDE 2026.2

Обновили базовую платформу до версии 2026.2, новая версия уже доступна для скачивания:

https://openide.ru/download/

Параллельно готовим к релизу AI-плагин, который в ближайшее время появится в составе OpenIDE Pro.

А познакомиться с возможностями Pro можно уже сейчас: пробная лицензия на 2 месяца доступна всем бесплатно и без регистрации!


Обновляйтесь и делитесь впечатлениями в @openide_chat — будем рады обратной связи!


БЕСПЛАТНАЯ ЛЕКЦИЯ ДЛЯ ВСЕХ 🔥

Друзья, 23 сентября открываем первую лекцию курса «Java в продакшене». Прийти может любой!

Два часа занятия о том, что происходит, когда Spring Boot-приложение встречается с настоящим продакшеном:

• зависимость тормозит и тянет за собой всю систему;
• запросы начинают падать каскадом;
• сервис захлёбывается под нагрузкой;
• обычный retry делает ситуацию ещё хуже.

Разберём Circuit Breaking, Bulkhead, Load Shedding и приоритизацию трафика. Поговорим не только о паттернах, но и о том, когда они действительно спасают систему, а когда создают новые проблемы.


❓ Тема: «Когда что-то идёт не так. Отказоустойчивость Spring Boot-приложений»
🎓 Лектор: Михаил Поливаха. Senior Software Engineer, контрибьютор Spring, спикер JPoint, Joker, Spring I/O Barcelona и Devoxx Belgium.
🗓 23 сентября

В конце проведем открытую Q&A-сессию.
Ссылка на лекцию будет в канале.

Если понравится - будем рады вашим регистрациям на весь курс.

🔗 Ссылка на курс: https://spring-aio.ru/java_in_production


🖥 Новые фичи Java нужны не только на собеседованиях

Друзья, всем привет! Так как буквально на днях вышла Java 27, скоро многие команды вновь поднимают вопрос о миграции на более свежие версии Java. Мы знаем, что у вас до сих пор полно Java 11 и Java 17 😈

Для большинства разработчиков изменения в Java Runtime не так заметны - мы нечасто сталкиваемся с этим на повседневной основе. Однако, новые фичи именно Java как языка: sealed типы, ScopedValue, виртуальные потоки и т.д - с этим мы сталкиваемся (или кто-то лишь ещё будет сталкиваться) больше.

И к сожалению, большинство использует эти фичи лишь на Java собеседовании, а не в реальном production, и как следствие, опыта в том, а где же реально могут пригодиться новые фичи Java у людей нет. Пора это исправить!

Команда Axelix написала статью на тему того, как относительно новые фичи Java помогли решить им ряд проблем в Open Source ядре. На практике и без воды - код открытый, вы можете сами клонировать и изучить его более детально 🫡

🔗 Статья на Habr


Video oldindan ko‘rish uchun mavjud emas
Telegram'da ko‘rish
🍃 Hibernate тормозит, Java чинит конструкторы, 100% coverage — зло | Spring АйО Подкаст №73

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ
🤩 СЛУШАТЬ НА SPOTIFY
🤩 СЛУШАТЬ НА APPLE PODCASTS

💬 Аудио версию подкаста можно найти в комментариях

5k 0 20 16 32

🚀 Spring АйО запускает публичные mock-интервью

Хотите проверить свои знания в разработке, потренироваться перед реальным собеседованием и понять, чего не хватает до следующего оффера?

Друзья, мы запускаем публичные интервью с экспертами Spring АйО. Желающие могут его пройти и получить честную обратную связь с рекомендациями по дальнейшему развитию.

Формат собеседования подберём вместе:

• теоретические вопросы по Java, библиотекам и фреймворкам
• code review
• live coding
• system design
• алгоритмические задачи

❓ Как всё проходит:

1. Вы заполняете небольшую анкету.
2. Мы созваниваемся на 30 минут, знакомимся и обсуждаем детали.
3. Выбираем формат и удобную дату, время.
4. Проводим и записываем собеседование.
5. Вместе делаем ревью и готовим выпуск к публикации на площадках Spring АйО.

❗️ Уровень опыта не так важен. Гораздо важнее желание проверить себя, получить конструктивную обратную связь и поделиться этим опытом с сообществом.

✉️ Оставить заявку на участие

Ждем на собес!

5.6k 0 30 15 77

🔥 Завтра выходит Java 27!

Главное:

• Compact Object Headers включаются по умолчанию. Метаданные каждого объекта становятся компактнее, что может уменьшить потребление heap примерно на 20% и снизить нагрузку на GC. Раньше для этого требовался флаг -XX:+UseCompactObjectHeaders.

• G1 становится сборщиком мусора по умолчанию во всех окружениях. Раньше JVM могла выбирать Serial GC на машинах и в контейнерах с небольшим количеством ресурсов. Поэтому после обновления стоит перепроверить память, паузы и CPU именно на маленьких инстансах.

• JFR начинает автоматически скрывать чувствительные данные. Пароли, токены, API-ключи и секреты в аргументах JVM, переменных окружения и системных свойствах больше не должны случайно попадать в запись Flight Recorder.

⚠️ Но есть и изменения, способные сломать старые конфигурации

Флаги -noverify и -Xverify:none окончательно удалены. -XX:InitiatingHeapOccupancyPercent переименован в -XX:G1IHOP, а JSON-дампы потоков получили новую версию формата и теперь записывают идентификаторы числами, а не строками.

Java 27 не LTS, поэтому массовая миграция в продакшене вряд ли начнётся завтра. Но проверить сервисы и контейнеры уже стоит, так как часть оптимизаций включится автоматически, а старые JVM-флаги могут внезапно напомнить о себе.

Редкий релиз, где отсутствие новых фич может уменьшить потребление памяти.

🔗 Статья на Хабр: https://habr.com/ru/companies/spring_aio/articles/1082138/


☄️ Вчера у наших друзей из Axelix вышел 1.1.0 релиз!

Парни сфокусировались на том, чтобы Axelix Master соответствовал требованиям современных систем к мониторингу и безопасности. Подробности можно прочитать в Release Notes.

Мы знаем, что среди участников Spring АйО довольно много контрибьютеров в ядро Axelix. Отдельный респект всем, кто контрибьютит!🧑‍💻

Это как раз возможность для тех кто давно хотел попробовать себя в Open Source, но никак не было возможности.

Если вы давно хотели получить инструмент, который позволит вам заглянуть внутрь ваших Spring Boot приложений, то это инструмент для Вас!

👩‍💻 Исходный код
🔗 Документация

Ну и конечно, ядро проекта Open Source, так что можно уже этим пользоваться уже сегодня

20 ta oxirgi post ko‘rsatilgan.