Spring АйО
10.8K subscribers
474 photos
304 videos
606 links
Русскоязычное сообщество Spring-разработчиков.

Habr: bit.ly/433IK46
YouTube: bit.ly/4h3Ci0x
VK: bit.ly/4hF0OG8
Rutube: bit.ly/4b4UeX6
Яндекс Музыка: bit.ly/3EIizWy

Чат для общения: @spring_aio_chat
По вопросам сотрудничества: @befayer
Download Telegram
👨‍💻 Structured Concurrency в Java 26 — шестое превью. JEP 525.

Проблема, которую решает эта фича, хорошо знакома любому, кто писал параллельный код на 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👍19113
Научи своего AI-агента писать код на Spring

Уже завтра Павел Кислов и Илья Кучмин (AI DevTools Lead в Amplicode) проведут прямую трансляцию, на которой расскажут, как:

– ускорить разработку с AI-агентами (Claude, Codex, OpenCode, ...)
– снизить количество токенов во время решения рабочих задач
– и получать код, который не приходится переписывать вручную (ну почти)

Онлайн • Бесплатно • 23 апреля (17:00 МСК)

🎉 Главное зарегистрироваться через бота
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥22👍14🤩64
🍃 Beyond @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 АйО будут транслироваться в онлайне и будут доступны абсолютно бесплатно! Главное – зарегистрироваться.

Для тех, кто придет лично – наш зал будет под номером 2️⃣!

🗓 29 апреля
📍 Онлайн. Бесплатно
🏠 Оффлайн. Гостиница «Рэдиссон Славянская»: пл. Европы, 2

🔗 ЗАРЕГИСТРИРОВАТЬСЯ

@spring_aio 🩷 @jpoint_joker_channel
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥10🤩433
Спасибо всем, кто был вчера в онлайне и задавал вопросы — получилось живо!

Запись трансляции «Научи своего AI-агента писать код на Spring» уже доступна на всех площадках.

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE

Все возможности Spring Agent Toolkit появятся в следующей мажорной версии Amplicode в начале следующей недели.

Как только релиз выйдет, опубликуем инструкцию по установке, настройке и использованию.


@amplicode 🤝 @spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
123👍19🔥93
Spring АйО Академия. Спрашивали? Отвечаем!

После анонса программы по продвинутому Hibernate нам прилетело несколько повторяющихся вопросов. Собрали ответы в одном посте.

1. Будут ли другие темы, кроме Hibernate?

Да, и это как раз один из наших следующих фокусов.

Spring АйО Академия — не история про один курс. У нас достаточно экспертизы и материалов, чтобы постепенно запускать программы по ключевым темам экосистемы Spring, а также по современной Java/Kotlin-разработке.

Дальше будем смотреть на запросы сообщества, интерес к первым потокам и вашу обратную связь. Чем больше будет отклика, тем быстрее появятся новые программы.

2. Будет ли повтор этого курса позже?

В 2026 году — нет.

У Михаила плотный график, и после первого потока мы хотим сфокусироваться на подготовке следующих программ Академии. Поэтому если вам актуален именно этот курс по Hibernate, лучше заходить сейчас: дата следующего набора пока не определена.

3. Будет ли сертификат после окончания программы?

Да. После завершения обучения участники получат именной сертификат Spring АйО Академии с подписью Михаила.

4. До какого числа можно записаться?

Заявки принимаем до 00:00 МСК 1 мая.

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

5. Будут ли бонусы у участников первого потока?

Да. Для участников первого потока будет действовать постоянная персональная скидка 15% на будущие программы Spring АйО Академии.

Подробности по применению скидки отправим каждому участнику отдельно.


Если давно хотели разобраться, как Hibernate ведет себя в реальных enterprise-системах, а не в учебных примерах — это хороший момент зайти в первый поток.

🔗 Программа курса и запись: https://spring-aio.ru/advanced_hibernate
Please open Telegram to view this post
VIEW IN TELEGRAM
47👍19🔥41
⚡️⚡️⚡️ Тысячи людей в онлайне: Spring AйО x JPoint 2026

В прошлом году мы проводили Spring Now 2025 – бесплатную онлайн конференцию для Spring-разработчиков. В моменте на всех площадках нас смотрело более 1000 разработчиков с разных уголков планеты.

В этом году Spring Now стал частью самой большой Java-конференции в РФ – JPoint/Joker.


Но концепция бесплатной конференции с лучшими докладами про передовые технологии из Spring-экосистемы никуда не делась!

29 апреля вас ждут 5 докладов про Spring! Трансляция пройдет на сайте конференции и будет доступна всем зарегистрировавшимся.

⛔️Все, кто будет присутствовать на JPoint 2026 вживую, смогут наблюдать доклады в зале №2 на протяжении целого дня.

Не упусти возможность посмотреть доклады экспертов Spring АйО и приглашенных спикеров!

ЗАРЕГИСТРИРОВАТЬСЯ 🔫
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥21👍971
Трек 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 в продакшене, где возникают сложности и какие есть рабочие подходы к их решению. Приходите слушать, обсуждать и узнавать новое.

Зарегистрироваться
👍20🔥76
Очень жарко 🔥

Друзья, JPoint в самом разгаре и хотим напомнить, что мы как всегда тут!

Приходите на наш стенд, общайтесь с экспертами, участвуйте в активностях. И не забывайте про наш трек, доклады которого проходят в зале №2.

⛔️А для самых активных участников доклада, за самые крутые вопросы мы дарим бокс с очень крутым мерчом от нас и наших друзей (да, там есть та самая книжка с кабанчиком).
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥126
Доступ к бесплатным докладам Spring АйО

Если вы не успели посмотреть трек по Spring 29 апреля или хотите поделиться записями докладов с друзьями — мы открыли дополнитнельную регистрацию.

Как получить доступ к докладам:
Зарегистироваться на Timepad
• Авторизоваться на сайте JPoint (кнопка «Войти» в правом верхнем углу экрана) по той же почте, с которой регистрировались
Смотреть 5 докладов по Spring

А JPoint 2026 — продолжается. Приятной конференции 😀
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍128🔥5
🏦 Они среди нас (вас)

Друзья, мы с Т-Банком все еще ищем спикеров на JVM Day.

Если у вас есть кейс, продукт или решение, о котором стоит рассказать backend-сообществу, есть два варианта:

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

👑 Показать продукт в демо-зоне. Ребята выделяют на весь день отдельное пространство со стойками и экранами. Можно демонстрировать технологию вживую, общаться с инженерами, собирать обратную связь и знакомиться с первыми пользователями.

Просто берешь и идешь один, либо зовешь коллегу, собираешь дискуссию или проводишь воркшоп.

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

☀️ 29 августа, Москва, штаб-квартира Т-Банка
Подать заявку можно по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5😁4🔥3
🐳 Поддержка Docker Compose в Spring Boot 3.1

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

- PostgreSQL
- Kafka
- RabbitMQ
- Redis

И так далее. Менеджить целый зоопарк таких сервисов локально бывает не очень удобно. К счастью, у команды Spring Boot для вас есть небольшой помощник - Spring Boot Docker Compose.

Комментарий от Михаила Поливахи:

Друзья, хоть на дворе уже Spring Boot 4, мы знаем, что большинство из вас сидит на Spring Boot 3. И мы посчитали очень нужным рассказать о таком Spring Boot инструменте, который, на наш взгляд, делает локальную разработку со Spring Boot намного более приятной.


📎Полный текст — https://habr.com/ru/companies/spring_aio/articles/1031216/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥125🤔3
Media is too big
VIEW IN TELEGRAM
🍃 Java 27, Spring Boot 2 всё ещё жив, Брайан Гойтс говорит “нет” | Spring АйО Подкаст №60

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

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥86😁2
🍃 Владимир Плизга & Spring АйО

Продовые heap-дампы, конечно, штука полезная, пока вместе с ними не утекают логины, пароли и прочие сюрпризы для ИБ.

В нашем блоге вышла статья от Владимира Плизга — друга Spring АйО и автора, который умеет разбирать сложные JVM-темы без лишнего шума и магии.

Статья о том, как анализировать heap-дампы с прода и при этом не тащить за собой лишние риски:

🔘где в дампе могут всплыть sensitive-данные;
🔘как это проверять на практике;
🔘чем дезинфицировать дампы перед передачей;
🔘и когда брать Eclipse MAT, heap-dump-tool или hprof-redact.

Материал особенно полезен тем, кто работает с JVM, production-инцидентами, OutOfMemory и performance-разбором не только в теории.

🎂 У Владимира Плизга и Алексея Рагозина есть курсы по оптимизации производительности приложений на JVM. Инфа тут.

📎 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/1031462/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍124
⚡️ Cursor удалил прод за 9 секунд, а Zig и JVM запретил AI-коммиты

Двенадцатый выпуск еженедельных IT-новостей от OpenIDE! На этот раз из Москвы!

Anthropic оценили в $1 трлн, ИИ-системы оказались дороже сотрудников, а Zig ввёл запрет на AI-коммиты — потому что цель опенсорса растить людей, а не обрабатывать патчи от нейронки.

Спасибо ребятам из @spring_aio за предоставленный для розыгрыша мерч-бокс 🔥

Если хотите попытать удачу, то жмите сюда!


😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26👌1310🔥4
🧙Subject Matter Expert. Чёрная Метка Для Разработчика

Михаил Поливаха:

Давно известный факт: подавляющая часть (более половины) IT проектов оказываются неуспешными.

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

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

Приятного чтения.


📎 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/1033330/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍165🔥5🤔3
Лучше поздно, чем никогда. Команда Spring про Spring Framework 7 и Spring Boot 4

Итак, в конце 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.

📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1034282/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2210👍9
👋 Гудбай Spring Boot 3.5

⛔️В июне у Spring Boot 3.5 заканчивается open-source поддержка.

Что делать с безопасностью, как планировать обновление и нужен ли вообще сценарий с расширенной поддержкой.

Наши друзья из Axiom JDK, как раз проводят опрос на эту тему. Нам всем очень важно понять:

☑️кто уже готовит обновление;
☑️насколько важны security-фиксы;
☑️есть ли запрос на расширенную поддержку Spring;
☑️и кого изменения почти не затрагивают.

⛔️Ведь именно от вашего мнения будет зависеть наша будущая работа со Spring.

Опрос займет не больше 10 минут.

После исследования соберем все в крутую статейку. А среди участников опроса будет разыгран мерч 😎

Ну а пока:

👉 Пройти опрос: https://anketolog.ru/re/155748549/HuIH8s7E
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥97👍5🤯2
🧠 Сила не только в модели: зачем Skills AI-агентам

По данным 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 исследование разбито на этапы:

☑️ сначала агент по запросу предсказывает, какие сущности и компоненты вообще могут быть затронуты
☑️ затем выбирает только релевантные пути исследования
☑️ после этого строит конкретный план MCP-вызовов, выполняет его
☑️ и на выходе собирает exploration report с implicit assumptions.

Каждый этап жёстко ограничен: что смотреть, что пропускать и когда вообще не нужно вызывать инструменты. А вся проектная информация в исследовательском цикле должна собираться через Spring MCP: получить описание сущности, найти репозитории, сервисы, контроллеры, мапперы, DTO и другие связанные компоненты.

Все Spring Skills опубликованы на GitHub, поэтому давайте пробовать, пишите фидбек и не забывайте ставить звёздочки ⭐️
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍3013🔥102
👩‍💻 Kotlin переходит к деструктурированию по именам

В 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.

Сейчас этот функционал является экспериментальным, но есть планы в будущем переехать полностью на деструктурирование по имени.

📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1035596/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123🔥3