Spring АйО
Русскоязычное сообщество 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)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
Разберемся, как связаны Spring AOP, проксирование и AspectJ и в каких случаях возможностей Spring уже недостаточно.☑️ «Превратности DLT: как топик ошибок становится кладбищем бизнес-событий» Евгений Сулейманов, технический директор ProzyTech
Обсудим, почему Dead Letter Topic без мониторинга и оповещений может привести к потере важных бизнес-событий.☑️ «Эволюция ИИ-агентов. Как простой запрос превращается в полноценную архитектуру» Максим Александров, старший разработчик программного обеспечения Aston
Проследим путь от обычного текстового запроса до полноценной агентной системы с памятью, контекстом, управлением состоянием и планированием.📅 22 июля, 18:00 по Москве 📍 Онлайн 🎯 Для специалистов любого уровня 🔗 Регистрация по ссылке До встречи на митапе!
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/1. Полноценную поддержку Spring 2. Расширенную поддержку Go (с отладкой и профилированием) 3. Полный доступ к инструментам для работы с БД (PostgreSQL, MySQL, ClickHouse, Oracle) 4. Поддержку JavaScript/TypeScript вместе с React/Angular/Vue 5. Инструменты для работы с Python и PHPТакже доступны бесплатные пилоты для корпоративных клиентов с раширенным триальным периодом. Достаточно просто оставить заявку через форму. Скачать: https://openide.ru/download 📚 Подробнее про OpenIDE Pro читайте в релизной статье на Хабре
java-test-fixtures заводит в модуле отдельный SourceSet, а другие модули подключают эти классы через лаконичный DSL. При публикации Gradle даже собирает отдельный *-test-fixtures.jar для независимых проектов. В статье на примерах показано, как расшарить тестовые хелперы между модулями, избавиться от дублирования и при этом сохранить чистые архитектурные границы. Если вы устали таскать тестовый код из модуля в модуль, то Вам точно пригодится.
📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1059130/setAccessible)
- Возможности инлайнинга методов JIT-ом
- Необходимый Boxing/Unboxing в силу сигнатуры Method#invoke() и т.д.
В статье от Бена Эванса, писателя и jvm-инженера, рассказывается о том, почему производительность reflection-а имела проблемы. Однако в Java 18 reflection начал использовать MethodHandles и это многое поменяло.
P.S: Если будет интересно, пишите, обязательно расскажем и про MethodHandles.
📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1056734/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.
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/Кода с Spring Data JDBC в открытом доступе мало, и модели приходится достраивать поведение фреймворка по своим общим представлениям. Итог: агент ссылается на внутренний компонент чужого агрегата, заводит репозиторий для владеемой сущности и нарушает границы там, где этого делать нельзя 🫠.Skill объясняет агенту, как Spring Data JDBC устроен на самом деле: что такое агрегат, где проходит его граница и почему репозиторий бывает только у корня. Для моделей среднего класса это критично (на отдельных задачах скилл подтягивает Haiku почти до уровня Opus!). Этому и посвящён скилл недели. 📚 Как научить агента мыслить агрегатами разобрали в статье на Хабре
spring-boot-starter-batch-data-mongodb. Теперь Spring Batch научился работать с MongoDB.
В статье Josh Long рассказывает про новинки в рамках Spring Batch, в том числе и новую интеграцию с MongoDB, а также работу с GraalVM
📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1052358/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/