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
显示更多📈 Telegram 频道 Spring АйО 的分析概览
频道 Spring АйО (@spring_aio) 是活跃参与者。目前社区聚集了 10 916 名订阅者,在 技术与应用 类别中位列第 10 847,并在 俄罗斯 地区排名第 57 892 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 10 916 名订阅者。
根据 06 十月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 12,过去 24 小时变化为 4,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 44.27%。内容发布后 24 小时内通常能获得 23.29% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 4 831 次浏览,首日通常累积 2 542 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 36。
- 主题关注点: 内容集中在 айо, хабр, 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”
凭借高频更新(最新数据采集于 07 十月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
EnvironmentPostProcessor побудила довольно большое обсуждение вокруг темы того:
- Как Spring грузит конфигурацию в целом?
- При чём тут bootstrap.yaml и BootstrapContext?
- Что кардинально поменялось?
- И в чём же такая особенность spring.config.import и почему она требует особого внимания?
⚠️ Полезно всем, кто хоть раз пытался понять, откуда Spring взял конкретное значение
🔗 Статья на Хабр: https://habr.com/ru/companies/spring_aio/articles/1091064/X25519MLKEM768. Она объединяет классический X25519 и постквантовый ML-KEM-768.
Секрет зависит от обоих алгоритмов. Даже если один из них когда-нибудь взломают, второй продолжит защищать соединение.
Клиент на JDK 27 по умолчанию предлагает серверу две схемы. Новую гибридную и обычную X25519. Если сервер поддерживает гибридную, используется она. Если нет, TLS продолжает работать по старой схеме.
Для нас, как для Spring-разработчиков приятно то, что при использовании стандартного javax.net.ssl защита включается по умолчанию. На код никак не влияет, если приложение не переопределяет список TLS-групп.
👀 Получается редкий апгрейд безопасности, который можно получить простым обновлением JDK. Правда, защищает он не от квантового компьютера сегодня, а от слишком -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Попробовать новые возможности может каждый: OpenIDE Pro на 2 месяца доступна бесплатно и без регистрации.Скачать: https://openide.ru/download/
application.yml в библиотеку кажется очевидным решением. На практике Spring Boot не объединяет два таких файла так, как можно было бы ожидать. Профиль требует ручной активации в каждом сервисе, @PropertySource имеет неудобный приоритет, а конфигурация через бины появляется слишком поздно для части настроек.
Для этой задачи в Spring Boot есть отдельный механизм: EnvironmentPostProcessor. Он позволяет изменить Environment ещё до создания ApplicationContext, выбрать приоритет источника свойств и при необходимости прочитать, дополнить или переопределить уже существующую конфигурацию.
В новой статье от наших друзей из Axelix мы разберем на реалном примере, как зарегистрировать такой процессор, почему порядок его выполнения критически важен, и какие у него есть ограничения.
🔗 Вот сама статья.@note. Он позволит выделять важные примечания прямо в документации API.
/**
* {@note (header='Caution:')
* Untrusted input must be verified!}
*/
Стандартный doclet превратит такую запись в отдельный заметный блок. Заголовок можно менять, а через javadoc -tag создавать свои варианты вроде @warning.
Сейчас для подобных вещей приходится использовать обычный текст, HTML или нестандартные теги. @note даст единый способ отделить важное замечание от простыни документации.
Пока это только предложение для JDK 28. Команда OpenJDK собирает обратную связь, поэтому до релиза синтаксис ещё может измениться.
Все для людей!
🔗 ПодробностиПоговорим о том, как сохранить Spring Boot-приложение в рабочем состоянии, когда: • внешние зависимости тормозят; • ошибки распространяются каскадом; • сервис не справляется с нагрузкой; • привычные retry только усугубляют ситуацию. Разберём Circuit Breaking, Bulkhead, Load Shedding и приоритизацию трафика, с акцентом на реальные сценарии, ограничения и ошибки применения.❓ Тема: «Когда что-то идёт не так. Отказоустойчивость Spring Boot-приложений» 🎓 Лектор: Михаил Поливаха 🗓 Когда: уже завтра, 23 сентября 🔗 Подключиться к лекции: https://my.mts-link.ru/j/104598363/25496740660 В конце будет открытая Q&A-сессия. 🤓 А если захотите погрузиться в тему глубже, присоединяйтесь ко всему курсу: https://spring-aio.ru/java_in_production
springaio персональные билеты дешевле
Полное расписание и билеты — на сайте.major.minor.patch, но не следует SemVer буквально. Патч-релизы должны оставаться совместимыми, а вот minor-релизы могут содержать несовместимые изменения. Номер версии здесь показывает не строгий контракт, а ожидаемую сложность обновления.
И это не странность Spring Boot. Версионирование связано с релизным циклом, политикой совместимости, сроками поддержки и тем, как часто пользователи готовы обновляться.
Поэтому выбор схемы версий оказывается архитектурной задачей, а не упражнением с тремя цифрами.
Хороших разборов этой темы мало, поэтому наш эксперт, Михаил Поливаха подготовил свой.
🔗 Читать материал: https://habr.com/ru/companies/spring_aio/articles/1084716/А познакомиться с возможностями Pro можно уже сейчас: пробная лицензия на 2 месяца доступна всем бесплатно и без регистрации!Обновляйтесь и делитесь впечатлениями в @openide_chat — будем рады обратной связи!
• зависимость тормозит и тянет за собой всю систему; • запросы начинают падать каскадом; • сервис захлёбывается под нагрузкой; • обычный 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
☑️ Иван Углянский — про проект Valhalla и value-типы в Java. Зачем они нужны, почему работа над ними растянулась на годы и какой новый подход приблизил проект к реализации. Заглянем под капот JVM и разберёмся, в каких задачах пригодятся value-классы. ☑️ Максим Козлов, CTO и сооснователь GitFlic, — про разработку с AI-агентами. Агенты ускоряют работу, но как проверить, что в итоге получилось именно то, что требовалось? Поговорим о связи требований, изменений в коде и поведения системы, а также об обратной связи, которая помогает сохранять контроль над разработкой.⚠️ Обязательно регистрируйтесь по ссылке внизу поста. 📅 18 сентября (СЕГОДНЯ) – сбор с 18:00, доклады с 19:00 📍 Москва, лофт Casa Picassa, Бауманская, 11, стр. 8, зал «Кандинский» Встреча пройдёт офлайн, после неё организаторы обещают записи выступлений. Участие бесплатное, нужна предварительная регистрация. 👉 Программа и регистрация
sealed типы, ScopedValue, виртуальные потоки и т.д - с этим мы сталкиваемся (или кто-то лишь ещё будет сталкиваться) больше.
И к сожалению, большинство использует эти фичи лишь на Java собеседовании, а не в реальном production, и как следствие, опыта в том, а где же реально могут пригодиться новые фичи Java у людей нет. Пора это исправить!
Команда Axelix написала статью на тему того, как относительно новые фичи Java помогли решить им ряд проблем в Open Source ядре. На практике и без воды - код открытый, вы можете сами клонировать и изучить его более детально 🫡
🔗 Статья на Habr