Проблема, которую решает эта фича, хорошо знакома любому, кто писал параллельный код на Java.
ExecutorService, Future, CompletableFuture ничего не знают о связях между задачами. Три параллельные подзадачи для одного запроса живут в разных потоках без общего «родителя» — и если одна упала, об этом никто автоматически не узнает.Классический пример: параллельно загружаем профиль, настройки и историю пользователя.
public class UnstructuredExample {
public static UserData loadUserData(int userId) {
String profile = fetchProfile(userId);
String preferences = fetchPreferences(userId);
String history = fetchHistory(userId);
return new UserData(profile, preferences, history);
}
}
Можно, конечно, попробовать добиться этого поведения вручную: добавить
cancel() в catch, завернуть всё в CompletableFuture.allOf, аккуратно обработать CompletionException. Но очень легко сделать что-то не так. И чем больше задач — тем больше бойлерплейта, который всё равно не даёт нормальной иерархии, нормальных стектрейсов и легко читаемого кода.Structured Concurrency решает это на уровне API.
public class StructuredExample {
public static UserData loadUserData(int userId) {
try (var scope = StructuredTaskScope.open(
StructuredTaskScope.Joiner.allSuccessfulOrThrow(),
Configuration cfg -> cfg
.withTimeout(Duration.ofSeconds(5))
.withName("load-user-data"))) {
// Fork all three subtasks — they run concurrently
var profile = scope.fork(() -> fetchProfile(userId));
var preferences = scope.fork(() -> fetchPreferences(userId));
var history = scope.fork(() -> fetchHistory(userId));
scope.join();
return new UserData(profile.get(),
preferences.get(),
history.get()
);
} catch (StructuredTaskScope.FailedException e) {
throw new RuntimeException("Failed to load user data: " + e.getCause().getMessage(), e);
}
}
}
Согласитесь, круто? Если любая задача упала — остальные отменяются автоматически. Поток-владелец гарантированно переживает все дочерние. Стектрейсы отражают реальную иерархию вызовов. Время жизни задач привязано к лексическому блоку — как
try-with-resources. И, что самое главное, описанное выше поведение можно довольно легко настроить.Данная функциональность, на самом деле, с нами уже довольно давно. А что же поменялось в Java 26 по сравнению с Java 25?
— скоуп создаётся через статический
StructuredTaskScope.open() вместо new—
join() возвращает List вместо Stream — результаты материализованы сразу, без риска обратиться к ним после закрытия скоупа— добавился
joinUntil(deadline) — если задачи не успели к дедлайну, скоуп их отменяетAPI явно стабилизируется, но одному Гослингу известно сколько еще итераций preview ждёт эта фича 🙂
Подробнее про Java 26 можно почитать и посмотреть в отдельном видео и статье на Хабре.
@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥47👍19❤11⚡3
⚡ Научи своего AI-агента писать код на Spring
Уже завтра Павел Кислов и Илья Кучмин (AI DevTools Lead в Amplicode) проведут прямую трансляцию, на которой расскажут, как:
– ускорить разработку с AI-агентами (Claude, Codex, OpenCode, ...)
– снизить количество токенов во время решения рабочих задач
– и получать код, который не приходится переписывать вручную (ну почти)
Онлайн • Бесплатно • 23 апреля (17:00 МСК)
🎉 Главное зарегистрироваться через бота
Уже завтра Павел Кислов и Илья Кучмин (AI DevTools Lead в Amplicode) проведут прямую трансляцию, на которой расскажут, как:
– ускорить разработку с AI-агентами (Claude, Codex, OpenCode, ...)
– снизить количество токенов во время решения рабочих задач
– и получать код, который не приходится переписывать вручную
Онлайн • Бесплатно • 23 апреля (17:00 МСК)
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥22👍14🤩6❤4
@SpringBootApplication: создание собственных экосистем поверх Spring Boot Друзья, встречаем второй из 5 докладов трека Spring АйО на самой важной конференции весны – JPoint 2026!
@SpringBootApplication — это только начало.А вот дальше начинается самое интересное: стартеры, автоконфигурации, совместимость с разными версиями Java и Spring Boot, тесты, изоляция, компромиссы и попытки не устроить бардак в чужих сервисах.
На JPoint 2026 в треке Spring АйО Никита Кириллов разберет, как строить платформенные решения поверх Spring Boot так, чтобы ими реально можно было пользоваться. На конкретном примере, с практикой из open-source.
Разберем четыре конкретных вопроса:
1. Как зарегистрировать бины динамически, если их количество заранее неизвестно? Разберем подходы и обсудим, что нового принес Spring Framework 7.
2. Как поддерживать стартер одновременно для разных версий Spring Boot? Обсудим архитектурные подходы и их компромиссы.
3. Как тестировать автоконфигурации быстро и в изоляции? Разберем ApplicationContextRunner, кеширование тестовых контекстов и что изменилось в Spring Framework 7.
4. Как гарантировать, что ваш стартер/библиотека работает на разных версиях Java? Обсудим, почему это важно, и посмотрим, как этот вопрос решает сам Spring Boot project.
Для тех, кто придет лично – наш зал будет под номером
📍 Онлайн. Бесплатно
@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥10🤩4❤3⚡3
Спасибо всем, кто был вчера в онлайне и задавал вопросы — получилось живо!
Запись трансляции «Научи своего AI-агента писать код на Spring» уже доступна на всех площадках.
😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
@amplicode🤝 @spring_aio
Запись трансляции «Научи своего AI-агента писать код на Spring» уже доступна на всех площадках.
Все возможности Spring Agent Toolkit появятся в следующей мажорной версии Amplicode в начале следующей недели.
Как только релиз выйдет, опубликуем инструкцию по установке, настройке и использованию.
@amplicode
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡23👍19🔥9❤3
После анонса программы по продвинутому Hibernate нам прилетело несколько повторяющихся вопросов. Собрали ответы в одном посте.
1. Будут ли другие темы, кроме Hibernate?
Да, и это как раз один из наших следующих фокусов.
Spring АйО Академия — не история про один курс. У нас достаточно экспертизы и материалов, чтобы постепенно запускать программы по ключевым темам экосистемы Spring, а также по современной Java/Kotlin-разработке.
Дальше будем смотреть на запросы сообщества, интерес к первым потокам и вашу обратную связь. Чем больше будет отклика, тем быстрее появятся новые программы.
2. Будет ли повтор этого курса позже?
В 2026 году — нет.
У Михаила плотный график, и после первого потока мы хотим сфокусироваться на подготовке следующих программ Академии. Поэтому если вам актуален именно этот курс по Hibernate, лучше заходить сейчас: дата следующего набора пока не определена.
3. Будет ли сертификат после окончания программы?
Да. После завершения обучения участники получат именной сертификат Spring АйО Академии с подписью Михаила.
4. До какого числа можно записаться?
Заявки принимаем до 00:00 МСК 1 мая.
Это необходимо, чтобы мы могли финализировать группу и уделить максимум внимания подготовке инфраструктуры для каждого участника. Нам важно, чтобы старт прошел комфортно для всех, поэтому после этой даты, увы, запись будет закрыта.
5. Будут ли бонусы у участников первого потока?
Да. Для участников первого потока будет действовать постоянная персональная скидка 15% на будущие программы Spring АйО Академии.
Подробности по применению скидки отправим каждому участнику отдельно.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤47👍19🔥4⚡1
⚡️⚡️⚡️ Тысячи людей в онлайне: Spring AйО x JPoint 2026
В прошлом году мы проводили Spring Now 2025 – бесплатную онлайн конференцию для Spring-разработчиков. В моменте на всех площадках нас смотрело более 1000 разработчиков с разных уголков планеты.
Но концепция бесплатной конференции с лучшими докладами про передовые технологии из Spring-экосистемы никуда не делась!
29 апреля вас ждут 5 докладов про Spring! Трансляция пройдет на сайте конференции и будет доступна всем зарегистрировавшимся.
⛔️ Все, кто будет присутствовать на JPoint 2026 вживую, смогут наблюдать доклады в зале №2 на протяжении целого дня.
Не упусти возможность посмотреть доклады экспертов Spring АйО и приглашенных спикеров!
ЗАРЕГИСТРИРОВАТЬСЯ🔫
В прошлом году мы проводили Spring Now 2025 – бесплатную онлайн конференцию для Spring-разработчиков. В моменте на всех площадках нас смотрело более 1000 разработчиков с разных уголков планеты.
В этом году Spring Now стал частью самой большой Java-конференции в РФ – JPoint/Joker.
Но концепция бесплатной конференции с лучшими докладами про передовые технологии из Spring-экосистемы никуда не делась!
29 апреля вас ждут 5 докладов про Spring! Трансляция пройдет на сайте конференции и будет доступна всем зарегистрировавшимся.
Не упусти возможность посмотреть доклады экспертов Spring АйО и приглашенных спикеров!
ЗАРЕГИСТРИРОВАТЬСЯ
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥21👍9❤7⚡1
Forwarded from JPoint и Joker — канал конференций по Java
Трек Spring АйО на JPoint — смотри бесплатно!
На JPoint 2026 часть программы будет доступна бесплатно — как отдельный трек от сообщества Spring АйО.
📅 29 апреля, онлайн
🗣Илья Николаев (МегаТех) — безопасная работа с секретами в Spring Boot: уходим от ENV к Vault и корпоративным хранилищам
🗣Никита Кириллов (Axelix Labs) — платформенные стартеры и экосистемы поверх Spring Boot: версии, бины, автоконфигурации без боли
🗣Артемий Дегтярев (ПО «ТРЕК») — текущее состояние Spring Data JDBC: фичи, ограничения, развитие подхода
🗣Михаил Поливаха (Spring АйО) — Axelix в рантайме: как видеть, что реально происходит в приложении с бинами, конфигами и транзакциями
🗣Рустам Курамшин (MAGNIT TECH) — кастомные метрики в Spring Boot и Grafana: от кода до дашбордов для продакшена
Этот трек вырос из практики сообщества: как на самом деле живет Spring Boot в продакшене, где возникают сложности и какие есть рабочие подходы к их решению. Приходите слушать, обсуждать и узнавать новое.
Зарегистрироваться
На JPoint 2026 часть программы будет доступна бесплатно — как отдельный трек от сообщества Spring АйО.
📅 29 апреля, онлайн
🗣Илья Николаев (МегаТех) — безопасная работа с секретами в Spring Boot: уходим от ENV к Vault и корпоративным хранилищам
🗣Никита Кириллов (Axelix Labs) — платформенные стартеры и экосистемы поверх Spring Boot: версии, бины, автоконфигурации без боли
🗣Артемий Дегтярев (ПО «ТРЕК») — текущее состояние Spring Data JDBC: фичи, ограничения, развитие подхода
🗣Михаил Поливаха (Spring АйО) — Axelix в рантайме: как видеть, что реально происходит в приложении с бинами, конфигами и транзакциями
🗣Рустам Курамшин (MAGNIT TECH) — кастомные метрики в Spring Boot и Grafana: от кода до дашбордов для продакшена
Этот трек вырос из практики сообщества: как на самом деле живет Spring Boot в продакшене, где возникают сложности и какие есть рабочие подходы к их решению. Приходите слушать, обсуждать и узнавать новое.
Зарегистрироваться
👍20🔥7❤6
Очень жарко 🔥
Друзья, JPoint в самом разгаре и хотим напомнить, что мы как всегда тут!
Приходите на наш стенд, общайтесь с экспертами, участвуйте в активностях. И не забывайте про наш трек, доклады которого проходят в зале №2.
⛔️ А для самых активных участников доклада, за самые крутые вопросы мы дарим бокс с очень крутым мерчом от нас и наших друзей (да, там есть та самая книжка с кабанчиком ).
Друзья, JPoint в самом разгаре и хотим напомнить, что мы как всегда тут!
Приходите на наш стенд, общайтесь с экспертами, участвуйте в активностях. И не забывайте про наш трек, доклады которого проходят в зале №2.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥12❤6
Forwarded from JPoint и Joker — канал конференций по Java
Доступ к бесплатным докладам Spring АйО
Если вы не успели посмотреть трек по Spring 29 апреля или хотите поделиться записями докладов с друзьями — мы открыли дополнитнельную регистрацию.
Как получить доступ к докладам:
• Зарегистироваться на Timepad
• Авторизоваться на сайте JPoint (кнопка «Войти» в правом верхнем углу экрана) по той же почте, с которой регистрировались
• Смотреть 5 докладов по Spring
А JPoint 2026 — продолжается. Приятной конференции😀
Если вы не успели посмотреть трек по Spring 29 апреля или хотите поделиться записями докладов с друзьями — мы открыли дополнитнельную регистрацию.
Как получить доступ к докладам:
• Зарегистироваться на Timepad
• Авторизоваться на сайте JPoint (кнопка «Войти» в правом верхнем углу экрана) по той же почте, с которой регистрировались
• Смотреть 5 докладов по Spring
А JPoint 2026 — продолжается. Приятной конференции
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍12❤8🔥5
Друзья, мы с Т-Банком все еще ищем спикеров на JVM Day.
Если у вас есть кейс, продукт или решение, о котором стоит рассказать backend-сообществу, есть два варианта:
Просто берешь и идешь один, либо зовешь коллегу, собираешь дискуссию или проводишь воркшоп.
Ну очень крутой и бесплатный способ заявить о себе, показать свою работу и увидеть, как на продукт реагирует профессиональное сообщество.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5😁4🔥3
Иногда перед разработчиком встает задача воссоздания некоторого окружения локально. В него часто входят различные компоненты инфраструктуры, такие как:
- PostgreSQL
- Kafka
- RabbitMQ
- Redis
И так далее. Менеджить целый зоопарк таких сервисов локально бывает не очень удобно. К счастью, у команды Spring Boot для вас есть небольшой помощник - Spring Boot Docker Compose.
Комментарий от Михаила Поливахи:
Друзья, хоть на дворе уже Spring Boot 4, мы знаем, что большинство из вас сидит на Spring Boot 3. И мы посчитали очень нужным рассказать о таком Spring Boot инструменте, который, на наш взгляд, делает локальную разработку со Spring Boot намного более приятной.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥12❤5🤔3
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥8❤6😁2
Продовые heap-дампы, конечно, штука полезная, пока вместе с ними не утекают логины, пароли и прочие сюрпризы для ИБ.
В нашем блоге вышла статья от Владимира Плизга — друга Spring АйО и автора, который умеет разбирать сложные JVM-темы без лишнего шума и магии.
Статья о том, как анализировать heap-дампы с прода и при этом не тащить за собой лишние риски:
Материал особенно полезен тем, кто работает с JVM, production-инцидентами, OutOfMemory и performance-разбором не только в теории.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍12⚡4
⚡️ Cursor удалил прод за 9 секунд, а Zig и JVM запретил AI-коммиты
Двенадцатый выпуск еженедельных IT-новостей от OpenIDE! На этот раз из Москвы!
Anthropic оценили в $1 трлн, ИИ-системы оказались дороже сотрудников, а Zig ввёл запрет на AI-коммиты — потому что цель опенсорса растить людей, а не обрабатывать патчи от нейронки.
😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Двенадцатый выпуск еженедельных IT-новостей от OpenIDE! На этот раз из Москвы!
Anthropic оценили в $1 трлн, ИИ-системы оказались дороже сотрудников, а Zig ввёл запрет на AI-коммиты — потому что цель опенсорса растить людей, а не обрабатывать патчи от нейронки.
Спасибо ребятам из @spring_aio за предоставленный для розыгрыша мерч-бокс 🔥
Если хотите попытать удачу, то жмите сюда!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26👌13❤10🔥4
🧙Subject Matter Expert. Чёрная Метка Для Разработчика
Михаил Поливаха:
📎 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/1033330/
Михаил Поливаха:
Давно известный факт: подавляющая часть (более половины) IT проектов оказываются неуспешными.
Имеется в виду, что IT продукт либо сильно задерживается по времени, либо становиться существенно более дорогим, либо попросту становиться нерабочим.
У подобной мрачной статистики много причин. В эти выходные, Михаил опубликовал статью, посвященную одной из этих причин. Возможно, многие даже узнают в этой истории свой проект.
Приятного чтения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤5🔥5🤔3
Итак, в конце 2025 вышел Spring Boot 4 и Spring Framework 7. InfoQ взяли интервью у core команды Spring с целью узнать, куда движется самая популярная в Java экосистема.
Spring Boot 4 модуляризировал автоконфигурацию. Теперь при запуске проверяется меньше классов в classpath, а uber-jar будет более компактным: будут подключаться только нужные модули. Параллельно Spring Boot 4 переходит на Jackson 3, но добавлен модуль совместимости с Jackson 2, потому что экосистема ещё догоняет.
Spring Framework 7 тащит core resilience в ядро:
RetryTemplate, @Retryable и @ConcurrencyLimit доступны без отдельной зависимости. @Retryable работает и с реактивными типами (через Retry из Project Reactor); для обычных вызовов используется RetryTemplate с политикой retry/backoff. @ConcurrencyLimit помогает ограничивать доступ к ресурсу, что особенно полезно с Virtual Threads.Особое внимание команда Spring уделила AI Agent-ам и потенциальной поддержке тулинга для AI Agent-ов в рамках проекта Spring Tools.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22❤10👍9
👋 Гудбай Spring Boot 3.5
⛔️ В июне у Spring Boot 3.5 заканчивается open-source поддержка.
Что делать с безопасностью, как планировать обновление и нужен ли вообще сценарий с расширенной поддержкой.
Наши друзья из Axiom JDK, как раз проводят опрос на эту тему. Нам всем очень важно понять:
☑️ кто уже готовит обновление;
☑️ насколько важны security-фиксы;
☑️ есть ли запрос на расширенную поддержку Spring;
☑️ и кого изменения почти не затрагивают.
⛔️ Ведь именно от вашего мнения будет зависеть наша будущая работа со Spring.
Опрос займет не больше 10 минут.
После исследования соберем все в крутую статейку. А среди участников опросабудет разыгран мерч 😎
Ну а пока:
👉 Пройти опрос: https://anketolog.ru/re/155748549/HuIH8s7E
Что делать с безопасностью, как планировать обновление и нужен ли вообще сценарий с расширенной поддержкой.
Наши друзья из Axiom JDK, как раз проводят опрос на эту тему. Нам всем очень важно понять:
Опрос займет не больше 10 минут.
После исследования соберем все в крутую статейку. А среди участников опроса
Ну а пока:
👉 Пройти опрос: https://anketolog.ru/re/155748549/HuIH8s7E
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤7👍5🤯2
По данным SkillsBench — первого бенчмарка, который системно измеряет, как Agent Skills влияют на качество работы агентов, — Skills в среднем улучшают результат на 16.2 процентного пункта на 84 задачах из 11 доменов. В числе авторов — исследователи из Stanford, Carnegie Mellon, UC Berkeley и других организаций.
Claude Haiku 4.5 со Skills набрал 27.7% против 22.0% у Opus 4.5 без них!
Маленькая и дешёвая модель обошла флагман просто потому что знала, что именно ей нужно делать.
Это работает в обе стороны: если у тебя Haiku или локальная модель, skills могут помочь компенсировать разницу в интеллекте. Для миллионеров, использующих Opus на повседневке, со Skills прирост ещё больше (+23.3%).
Сейчас мы как раз занимаемся разработкой Spring Skills. Один из скиллов называется spring-explore.
Зачем он?
Перед задачами, где нужно сначала разобраться в проекте, этот skill помогает агенту собрать первичный контекст о Spring Boot-приложении. Прежде чем браться за задачу, агент должен понять контекст: стек, модульную структуру, доменные сущности, репозитории, сервисы, DTO, мапперы и REST-слой. Потому что без явного сценария модели исследуют проект хаотично: лезут не туда, смотрят лишнее, тратят время, токены и tool calls на всё подряд.
Внутри spring-explore исследование разбито на этапы:
Каждый этап жёстко ограничен: что смотреть, что пропускать и когда вообще не нужно вызывать инструменты. А вся проектная информация в исследовательском цикле должна собираться через Spring MCP: получить описание сущности, найти репозитории, сервисы, контроллеры, мапперы, DTO и другие связанные компоненты.
Все Spring Skills опубликованы на GitHub, поэтому давайте пробовать, пишите фидбек и не забывайте ставить звёздочки
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍30❤13🔥10⚡2
В Kotlin деструктурирование выглядело так:
val (name, age) = person. Но компилятор берет значения не по именам, а по позиции component1/component2.Отсюда проблемы. Если поменяли порядок параметров в data class или сделали
age вычисляемым свойством: то та же строка начинает доставать другое поле. Причем иногда код даже скомпилируется, но, конечно, смысл изменится: val (age, name) = person.И вот теперь Kotlin экспериментально переводит круглые скобки на деструктурирование по имени. Синтаксис будет такой:
(val name, val age) = person. И порядок внутри скобок не важен. Переименование явно: (val years = age, val theName = name) = person.Позиционное же деструктурирование остается, но переезжает в квадратные скобки для Pair/Triple и коллекций:
val [x, y] = point.Сейчас этот функционал является экспериментальным, но есть планы в будущем переехать полностью на деструктурирование по имени.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3🔥3