fa
Feedback
Spring АйО

Spring АйО

رفتن به کانال در Telegram

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

نمایش بیشتر

📈 تحلیل کانال تلگرام Spring АйО

کانال Spring АйО (@spring_aio) بازیگری فعال است. در حال حاضر جامعه شامل 10 908 مشترک است و جایگاه 10 993 را در دسته فناوری و برنامه‌ها و رتبه 58 713 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 10 908 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 02 سپتامبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -3 و در ۲۴ ساعت گذشته برابر -5 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 50.30% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 24.28% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 5 487 بازدید دریافت می‌کند. در اولین روز معمولاً 2 648 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 53 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند айо, хабр, api, jep, amplicode تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
Русскоязычное сообщество Spring-разработчиков. Habr: bit.ly/433IK46 YouTube: bit.ly/4h3Ci0x VK: bit.ly/4hF0OG8 Rutube: bit.ly/4b4UeX6 Яндекс Музыка: bit.ly/3EIizWy Чат для общения: @spring_aio_chat По вопросам сотрудничества: @befayer

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 03 سپتامبر, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

10 908
مشترکین
-524 ساعت
+47 روز
-330 روز
آرشیو پست ها
🍃 Spring АйО & Aston ⛔️22 июля встречаемся на онлайн-митапе для Java-разработчиков, который проводим вместе с нашими друзьям
🍃 Spring АйО & Aston ⛔️22 июля встречаемся на онлайн-митапе для Java-разработчиков, который проводим вместе с нашими друзьями из Aston Поговорим о механизмах, которые «вроде бы работают», но требуют точного понимания: Spring AOP, AspectJ, Kafka DLT и архитектуре ИИ-агентов. В программе три практических доклада: ☑️ «Что не так с вашим Spring AOP? Отвечает Axelix» Михаил Поливаха, технический руководитель проекта Axelix
Разберемся, как связаны Spring AOP, проксирование и AspectJ и в каких случаях возможностей Spring уже недостаточно.
☑️ «Превратности DLT: как топик ошибок становится кладбищем бизнес-событий» Евгений Сулейманов, технический директор ProzyTech
Обсудим, почему Dead Letter Topic без мониторинга и оповещений может привести к потере важных бизнес-событий.
☑️ «Эволюция ИИ-агентов. Как простой запрос превращается в полноценную архитектуру» Максим Александров, старший разработчик программного обеспечения Aston
Проследим путь от обычного текстового запроса до полноценной агентной системы с памятью, контекстом, управлением состоянием и планированием.
📅 22 июля, 18:00 по Москве 📍 Онлайн 🎯 Для специалистов любого уровня 🔗 Регистрация по ссылке До встречи на митапе!

❓ Что вам нужно знать про семантику List и Set в Hibernate Казалось бы, ну коллекция и коллекция. Положил List или Set в enti
Что вам нужно знать про семантику List и Set в Hibernate Казалось бы, ну коллекция и коллекция. Положил List или Set в entity, и живи спокойно. А потом на проде внезапно появляется пачка странных DELETE/INSERT, транзакция тяжелеет, и кто-то обязательно говорит: «Ну это же Hibernate, он такой». Звучит удобно. Только вот удобство это обычно маскирует другое: вы сами сказали ORM одно, а ожидали совсем другое. Использование List и Set для Hibernate это особый сигнал. И от того, какой сигнал вы подали, зависит и SQL, и то, поедет ли у вас Lazy Loading в самый неподходящий момент. Иногда разница выглядит мелкой, но она крайне важна. Если вы хотите не очередной свод правил «делайте так, потому что так принято», а понять, почему ответ именно такой, заходите. Разберёмся без магии и без списания вины на Hibernate. P.S: Данную статью мы написали по мотивам вопросов, возникших у участников Spring АйО Академии. Спасибо всем тем, кто учавствовал в первом потоке! 📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1059922/

🍃 Агенты портят архитектуру, IDE не нужна, Spotify не стал лучше | Spring АйО Подкаст №67 😉 СМОТРЕТЬ НА YOUTUBE 😄 Чуть позже... 🥰 СМОТРЕТЬ НА RUTUBE 🗯 Чуть позже... 🤩 СЛУШАТЬ НА SPOTIFY 🤩 СЛУШАТЬ НА APPLE PODCASTS 💬 Аудио версию подкаста можно найти в комментариях

Repost from OpenIDE
⚡️ OpenIDE Pro теперь доступна всем Java, Kotlin, Go, TypeScript, JavaScript, Python, PHP и встроенный DB-клиент в одном дистрибутиве! Все пользователи OpenIDE могут перейти на OpenIDE Pro без регистрации, без NDA и без каких-либо ограничений. 60 дневный триальный период OpenIDE Pro включает в себя:
1. Полноценную поддержку Spring 2. Расширенную поддержку Go (с отладкой и профилированием) 3. Полный доступ к инструментам для работы с БД (PostgreSQL, MySQL, ClickHouse, Oracle) 4. Поддержку JavaScript/TypeScript вместе с React/Angular/Vue 5. Инструменты для работы с Python и PHP
Также доступны бесплатные пилоты для корпоративных клиентов с раширенным триальным периодом. Достаточно просто оставить заявку через форму. Скачать: https://openide.ru/download 📚 Подробнее про OpenIDE Pro читайте в релизной статье на Хабре

🐘 Тестовые фикстуры: управление зависимостями в Gradle В многомодульных Gradle-проектах рано или поздно появляются вспомогат
🐘 Тестовые фикстуры: управление зависимостями в Gradle В многомодульных Gradle-проектах рано или поздно появляются вспомогательные классы для тестов: фабрики тестовых данных, билдеры, хелперы. Такие классы не относятся ни к продакшн-коду, ни к обычным тестам. Логично было бы переиспользовать их сразу в нескольких модулях, но классическая модель Gradle этого не позволяет: тестовые артефакты одного проекта нельзя просто так подключить как зависимость в другом. На самом деле Gradle умеет решать эту задачу из коробки без вспомогательных проектов и хитрых конфигураций. Начиная с версии 5.6, тестовые фикстуры стали в Gradle полноценной сущностью первого класса, и весь этот пласт боли можно убрать буквально несколькими строчками в build.gradle. Плагин java-test-fixtures заводит в модуле отдельный SourceSet, а другие модули подключают эти классы через лаконичный DSL. При публикации Gradle даже собирает отдельный *-test-fixtures.jar для независимых проектов. В статье на примерах показано, как расшарить тестовые хелперы между модулями, избавиться от дублирования и при этом сохранить чистые архитектурные границы. Если вы устали таскать тестовый код из модуля в модуль, то Вам точно пригодится. 📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1059130/

🏋️ Масштабирование Java-систем реального времени Событийно-ориентированная архитектура красиво выглядит на схеме — пока не в
🏋️ Масштабирование Java-систем реального времени Событийно-ориентированная архитектура красиво выглядит на схеме — пока не встречается с требованиями реального времени. В статье разбирается опыт масштабирования Java-платформы контакт-центра: почему локальные кеши начали расходиться, как повторное воспроизведение Kafka-событий почти сделало бесполезным автомасштабирование, откуда взялось получасовое отставание потребителей и почему часть критических путей пришлось вернуть к синхронному взаимодействию. Без войны с Kafka и без универсальных рецептов — только архитектурные компромиссы, которые становятся видны под рабочей нагрузкой. 📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1058484/

🦎 Самокорректирующийся структурированный вывод в Spring AI 2.0 Софту всё чаще приходится интегрироваться с LLM. И тут быстро
🦎 Самокорректирующийся структурированный вывод в Spring AI 2.0 Софту всё чаще приходится интегрироваться с LLM. И тут быстро всплывает неприятная деталь: модели хорошо пишут текст, но не всегда стабильно возвращают данные в строгой структуре. Даже если явно попросить ответ по JSON Schema, модель может добавить пояснение, пропустить поле или вернуть не тот тип. Нативный structured output у части провайдеров есть, но он работает не везде и не одинаково. В статье Кристиан Тцолов, лидер Spring AI, разбирает, как в Spring AI 2.0 решается эта проблема. 📎Полный текст: https://habr.com/ru/companies/spring_aio/articles/1057472/

🤚 Reflection тормозит Сколько раз вы слышали тезис о том, что в Java Reflection тормозит, и лучше его избегать. Насколько эт
🤚 Reflection тормозит Сколько раз вы слышали тезис о том, что в Java Reflection тормозит, и лучше его избегать. Насколько это правда? С одной стороны, JMH benchmark на коленке, написанный на Java 17 говорит - деградация по сравнению с прямым вызовом есть, примерно 20-25%. Так в чём же дело? На практике, на performance reflection-а влияет множество вещей: - Проверки на доступ (Известный setAccessible) - Возможности инлайнинга методов JIT-ом - Необходимый Boxing/Unboxing в силу сигнатуры Method#invoke() и т.д. В статье от Бена Эванса, писателя и jvm-инженера, рассказывается о том, почему производительность reflection-а имела проблемы. Однако в Java 18 reflection начал использовать MethodHandles и это многое поменяло. P.S: Если будет интересно, пишите, обязательно расскажем и про MethodHandles. 📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1056734/

👩‍💻 Spring теперь не тормозит старт приложения из-за тяжелых бинов Одна из старых и вполне понятных особенностей Spring в том, что singleton бины во время ApplicationContext refresh создаются синхронно. Контейнер идет по цепочке последовательно: создал бин, внедрил зависимости, выполнил init-логику, пометил как готовый, пошел дальше. Модель надежная, но дорогая по времени. Если в этой цепочке оказывается бин, который на старте прогревает кеш, тянет данные, готовит внешние ресурсы или делает что-то вычислительно тяжелое, он начинает тормозить не только себя, а весь startup целиком. Даже если этот бин не критичен для первых секунд жизни приложения, контекст все равно вынужден его ждать. 💡 Теперь для таких сценариев, начиная со Spring 6.2 есть background initialization. Можно указать @Bean(bootstrap = Bean.Bootstrap.BACKGROUND), благодаря которой можно пометить конкретный бин так, чтобы Spring инициализировал его в фоне, а основной поток не стоял на месте и продолжал поднимать остальной контекст. Тяжелый бин больше не тормозит весь context refresh. ⚠️ Для инициализации в бекграунде нужен bootstrapExecutor (по-умолчанию, Spring Boot принесёт его самостоятельно). Но тут очень важно понимать, как это работает. Комментарий от Михаила:
Работает эта история таким образом - в injection point-ах, где нужен bean, кладётся proxy. Тем самым удовлетворяется зависимость. И вот тут крайне важно - если на этом proxy будет вызов метода, то он будет заблокирован до тех пор, пока реальный ваш bean не инициализируется. В данном случае это похоже на динамику работы Lazy, но не на declaration site-е, а на injection point-е. И ещё вот что важно: даже если вы отдали инициализацию бина в background, Spring Boot не завершит фазу refresh-а до тех пор, пока не встанет этот ваш бин. Это важно, чтобы потенциально сломанное приложение не начало serve-ить трафик. Есть очень хороший доклад от Juergen Hoeller-а, который он давал в Барселоне в 2025г, посмотрите его. У вас прямо много вещей встанет в голове в нужные места.
Если подытожить, Spring теперь позволяет не блокировать весь startup на тяжелых, но не критичных бинах, при этом не ломая lifecycle и dependency guarantees.

Repost from OpenIDE
"IDE больше не нужна. Агенты её убили" — всё чаще слышно из каждого утюга. Может, для людей и правда убили*. А агенты ей пользуются прекрасно, и им нужны ровно те же тулы, которыми раньше пользовались разработчики: поиск по структуре проекта, данные о покрытии тестами, профилировщик. JetBrains проверили это на трёх кейсах: 1. Встроенный поиск IDE вместо grep — минус 13,48% токенов на Kotlin-проекте, качество то же 2. Skill, который находит нужный тестовый файл по данным о покрытии — экономия токенов до 50% 3. Анализ снапшотов dotTrace вместо разбора кода вслепую — точность диагностики выросла с 4,71 до 8,15 из 10, а на сложных багах вроде зависшего UI — с 1,6 до 10 Как считали и что дальше — в статье на Habr: https://habr.com/ru/companies/haulmont/articles/1054434 * P.S. Несмотря на этот тезис, мы всё ещё не знаем ни одного разработчика, который удалил бы IDE с компа. Вот и думайте!

☠️ CLA или почему ваш PR в Open Source не может быть принят Какое-то время назад мы выпускали статью о том, что представляет
☠️ CLA или почему ваш PR в Open Source не может быть принят Какое-то время назад мы выпускали статью о том, что представляет собой Copyright и Software License, какие они бывают и т.д. Настало время выпустить небольшое продолжение, где мы рассмотрим другие легальные аспекты разработки софта: - Как на Copyright влияет использование AI? - Что такое CLA и когда без него нельзя? - От чего на самом деле спасает CLA, а где лицензии достаточно? На примерах разных проектов постараемся ответить на эти вопросы. 🔗 Подробности в статье: https://habr.com/ru/companies/spring_aio/articles/1055250/

🍃 AI мигрирует Python на Spring Boot, MongoDB ещё жива, SpringBatch 4 закончился | Spring АйО Подкаст №66 😉 СМОТРЕТЬ НА YOUTUBE 😄 СМОТРЕТЬ В VK ВИДЕО 🥰 СМОТРЕТЬ НА RUTUBE 🗯 Чуть позже... 🤩 СЛУШАТЬ НА SPOTIFY 🤩 СЛУШАТЬ НА APPLE PODCASTS 💬 Аудио версию подкаста можно найти в комментариях

🤑 В Java нет универсального типа для денег double быстрый, но хранит десятичные числа как двоичные приближения: 0.1 + 0.2 да
🤑 В Java нет универсального типа для денег double быстрый, но хранит десятичные числа как двоичные приближения: 0.1 + 0.2 дает 0.30000000000000004. BigDecimal точен в десятичной арифметике, но дороже по памяти и CPU. Выбор зависит от задачи: для метрик и ML хватит double с допуском, для налогов и счетов нужен BigDecimal с явным RoundingMode, для низкой latency - fixed-point на long. Ошибка не в double или BigDecimal, а в выборе без понимания точности, округления и нагрузки. 🔗 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1054074/

⚡ Skill of the Week: Spring Data JDBC Продолжаем рубрику Skill of the Week: каждую неделю разбираем скилл, который помогает в
⚡ Skill of the Week: Spring Data JDBC Продолжаем рубрику Skill of the Week: каждую неделю разбираем скилл, который помогает вам и AI-агентам в реальной работе. Spring Data JDBC — сознательно простой стек: агрегаты в духе DDD, загрузил корень целиком, изменил, сохранил. Казалось бы, чем проще технология, тем легче с ней агенту. Так ли это на практике? Скорее наоборот.
Кода с Spring Data JDBC в открытом доступе мало, и модели приходится достраивать поведение фреймворка по своим общим представлениям. Итог: агент ссылается на внутренний компонент чужого агрегата, заводит репозиторий для владеемой сущности и нарушает границы там, где этого делать нельзя 🫠.
Skill объясняет агенту, как Spring Data JDBC устроен на самом деле: что такое агрегат, где проходит его граница и почему репозиторий бывает только у корня. Для моделей среднего класса это критично (на отдельных задачах скилл подтягивает Haiku почти до уровня Opus!). Этому и посвящён скилл недели. 📚 Как научить агента мыслить агрегатами разобрали в статье на Хабре

Друзья, всем привет! Недавно эксперт сообщества, Михаил Поливаха, выступил на подкасте "Тысяча Фичей" Александра Пахомова, сп
Друзья, всем привет! Недавно эксперт сообщества, Михаил Поливаха, выступил на подкасте "Тысяча Фичей" Александра Пахомова, спикера Jpoint. Парни поговорили о наболевшем: 1. Почему Java до сих пор плотно держит Enterprise и на цифрах не сдает позиции. 2. Почему Oracle отказался от своего Enterprise Edition для Java. 3. Когда Spring Framework придёт конец и придёт ли вообще. 4. Когда нужно и не нужно использовать AI. 5. Как сохранить экспертизу и глубокое понимание в эру искусственного интелекта. Подкаст довольно длинный, и все темы удалось разобрать довольно глубоко. Слушать в Apple Podcasts | Spotify | Яндекс | браузер Ссылка на канал Александра Надеемся, Вам будет интересно! 🫡

🙏

👩‍💻 Spring Batch научился работать с MongoDB Spring Batch - проект в рамках экосистемы Spring Framework, который, как прави
👩‍💻 Spring Batch научился работать с MongoDB Spring Batch - проект в рамках экосистемы Spring Framework, который, как правило не получает должного внимания. Тем не менее, это хорошее решение для Enterprise Batch Processing. Долгое время Spring Batch требовал SQL-базу для хранения общего состояния, шагов перехода, статусов выполнения и время запусков. Даже если проект жил на MongoDB, рядом часто приходилось держать Postgres или MySQL только ради метаданных. В Spring Boot 4.1 стало проще: появился spring-boot-starter-batch-data-mongodb. Теперь Spring Batch научился работать с MongoDB. В статье Josh Long рассказывает про новинки в рамках Spring Batch, в том числе и новую интеграцию с MongoDB, а также работу с GraalVM 📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1052358/

👩‍💻 Большая сила маленьких PR-ов в эру AI Эра AI-агентов изменила разработку до неузнаваемости: кода стало больше, а скорос
👩‍💻 Большая сила маленьких PR-ов в эру AI Эра AI-агентов изменила разработку до неузнаваемости: кода стало больше, а скорость, с которой он попадает в репозиторий, выросла кратно. Вместе с этим встаёт честный вопрос — как не дать этой скорости размыть качество кодовой базы? Ведь сгенерировать тысячу строк сегодня проще, чем когда-либо, а вот удержать архитектурную целостность — нет. И тут обнаруживается узкое место, о котором редко говорят вслух. Финальное решение о том, как изменение вписывается в проект, по-прежнему принимает человек на code review — и именно это ревью становится той точкой, где качество либо сохраняется, либо незаметно утекает. Проблема в том, что у человеческого внимания есть предел, и большие изменения пробивают его слишком легко. В этой статье я расскажу, как мы в Axelix подошли к этой проблеме на уровне процесса и CI, какие возражения от команды при этом неизбежно всплывают и почему они не выдерживают проверки практикой. А ещё разберём угловые случаи, которые ломают любое красивое правило в реальной жизни, — и что мы с ними делаем. 📎 Подробнее в статье на Хабр: https://habr.com/ru/companies/spring_aio/articles/1051808/

Наши друзья из Axiom проводят вебинар для тех, кто сталкивается с Java, Kubernetes и всем, что связано с защищённым контуром.
Наши друзья из Axiom проводят вебинар для тех, кто сталкивается с Java, Kubernetes и всем, что связано с защищённым контуром. Ребята обещают показать самый что ни на есть практический сценарий: Java-сервисы внутри Kubernetes, mTLS, ГОСТ TLS, Axiom JDK Certified и КриптоПро/JTLS. В общем самая жиза. Будет разбор: • зачем сервисам сертификаты; • как работает mTLS; • где в этой схеме Axiom JDK Certified и КриптоПро; • почему не надо хранить ключи в container image; • как network policies помогают не превращать кластер в проходной двор. 👆Спикер — Дмитрий Сапожников.30 июня в 12:00 Если тема вам близка, регаться тут

🛡 Project Valhalla: 10 спустя В Java наконец появляется ответ на старую проблему: полноценные классы часто слишком дорогие д
🛡 Project Valhalla: 10 спустя В Java наконец появляется ответ на старую проблему: полноценные классы часто слишком дорогие для памяти и процессора. Пример - массив из миллиона, например, точек Point. Сейчас это обычно не миллион точек подряд, а миллион ссылок на объекты в куче. У каждого объекта есть служебные данные, его нужно создать, потом убрать сборщиком мусора. Плюс процессор постоянно прыгает по памяти, а это медленно. Project Valhalla добавляет value class. Это обычный на вид класс с полями, конструктором и методами, но без идентичности объекта. JVM сможет хранить такие данные плотнее: например, прямо внутри массива, без отдельного объекта для каждого значения. JEP 401 планируют включить в JDK 28 как preview. Это еще не финал: value class пока может быть null, а полная поддержка быстрых generics и плотных коллекций появится позже. Но первый рабочий шаг Valhalla уже близко. 📎 Статья целиком: https://habr.com/ru/companies/spring_aio/articles/1050938/