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
Show more📈 Analytical overview of Telegram channel Spring АйО
Channel Spring АйО (@spring_aio) is an active participant. Currently, the community unites 10 903 subscribers, ranking 10 975 in the Technologies & Applications category and 58 493 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 10 903 subscribers.
According to the latest data from 26 August, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -19 over the last 30 days and by -2 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 50.90%. Within the first 24 hours after publication, content typically collects 24.82% reactions from the total number of subscribers.
- Post reach: On average, each post receives 5 550 views. Within the first day, a publication typically gains 2 706 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 64.
- Thematic interests: Content is focused on key topics such as айо, хабр, api, jep, amplicode.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Русскоязычное сообщество Spring-разработчиков.
Habr: bit.ly/433IK46
YouTube: bit.ly/4h3Ci0x
VK: bit.ly/4hF0OG8
Rutube: bit.ly/4b4UeX6
Яндекс Музыка: bit.ly/3EIizWy
Чат для общения: @spring_aio_chat
По вопросам сотрудничества: @befayer”
Thanks to the high frequency of updates (latest data received on 27 August, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
null для ссылок, 0 для чисел, false для boolean) и только затем выполняется код инициализации.
По итогу на уровне JVM существует короткий промежуток времени, когда поле уже можно прочитать, хотя ему ещё не присвоили настоящее значение. Давайте рассмотрим вот такой пример:
class Parent {
Parent() {
// Вызов попадёт в переопределённый метод Child (dynamic dispatch),
// хотя конструктор Child ещё не закончил выполняться!
printValue();
}
void printValue() {}
}
class Child extends Parent {
private final int value;
Child() {
// Неявный super() уже был вызван, и только после него полю "value" присвоится 42.
this.value = 42;
}
@Override
void printValue() {
// Пока выполняется Parent(), здесь всё ещё значение по умолчанию - печатается 0, а не 42
System.out.println(value);
}
}
И вот OpenJDK хочет сделать шаг на пути исправления этой проблемы. В рамках JEP 539 завозят новый механизм "строгих полей" (strict fields). Их поведение будет немного отличаться в зависимости от того, static поле или нет, но цель одна - не допустить ситуации выше.
Например, если пометить value поле выше как strict (сейчас вы это никак не сделаете), то при загрузке класса будет VerifyError, т.к. строгие поля объектов необходимо присвоить до вызова super().
То есть Parent() уже не сможет вызвать printValue() и увидеть промежуточный 0: JVM отклонит некорректный байткод ещё при его проверке.
Зачем вообще нечто подобное делать? В основном ради Project Valhalla и концепции "Integrity By Default", о которой мы уже писали.
Java движется к value classes, а для них состояние объекта должно иметь гораздо более строгие гарантии. С точки зрения пользователя, Value классы нужны в основном для скаляризации (Вспоминаем девиз: "codes like a 'class', works like an 'int'"). А для того, чтобы JIT мог эффективно скаляризировать классы, он должен быть абсолютно уверен, что наблюдаемое им состояние объекта единственно верное, и остальные наблюдают его ровно таким же.
Проблема в том, что даже для final полей в Java это не так. С одной стороны из-за проблемы выше, а с другой из-за того, что final на самом деле не совсем final.
Соответственно, примерно через полгода мы уже, скорее всего, увидим эту фичу в preview. Подробнее можно почитать в самом JEP.
⚠️ Важно! Механизм строгих полей это opt-in механизм, который пока, по умолчанию, будет касаться только value классов. Существующий код механизм "строгих полей" пока не касается!.
🔗 JEP 539: https://openjdk.org/jeps/539Погнали по примерам. 1. cURL закрыл программу bug bounty из-за потока AI-отчётов Разработчик cURL Даниэль Стенберг объявил о закрытии HackerOne-программы после того, как количество ложных сообщений резко выросло. По данным OpenSSF: – к июлю 2025 года около 95% сообщений оказались недействительными; – объём заявок вырос примерно в 8 раз по сравнению с исторической нормой; – основная проблема — AI-сгенерированные отчёты, проверка каждого из которых требует времени человека. 2. OpenSSF выпустила отдельное руководство для мейнтейнеров Open Source Security Foundation (OpenSSF) и CNCF даже подготовили специальный документ "Securing Open Source in the Age of AI". Они прямо пишут, что LLM могут находить уязвимости и генерировать отчёты с беспрецедентной скоростью, но это создаёт новую операционную проблему: сопровождающие проектов оказываются завалены отчётами, каждый из которых приходится проверять вручную. 3. AI-DDoS В июле 2026 года вышла работа с говорящим названием "AI Slop is DDoSing Open Source" Авторы проанализировали 294 популярных GitHub-проекта и пришли к выводу, что после массового распространения генеративного ИИ: – число pull request'ов выросло; – процент принимаемых изменений снизился; – сильнее всего пострадали проекты, живущие за счёт добровольцев. Они даже ввели термин AI-DDoS. Это ситуация, когда проект оказывается перегружен не запросами к серверу, а правдоподобными, но низкокачественными AI-сгенерированными вкладами.Похоже, в ближайшие годы команды безопасности будут автоматизировать не только поиск уязвимостей, но и проверку самих отчётов об уязвимостях. 🔗 Источник: https://blogs.vmware.com/tanzu/broadcoms-investment-in-spring-to-combat-ai-fueled-security-challenges-in-the-enterprise/
«Напиши скрипт, который анализирует входящий JSON, фильтрует записи и отправляет результат в REST API».Дальше агент генерирует код, который выполняется локально через GraalVM. Понятно, что это не замена полноценной разработке. Но для интеграций, автоматизации и прототипирования такой подход имеет право на жизнь. Кроме AI Script Agent, в GraalVM 25.2 появились и другие изменения: • G1 GC теперь поддерживается в Native Image на всех основных платформах, включая Windows. • Vector API включён по умолчанию, что должно упростить использование SIMD-оптимизаций без дополнительной настройки. Пока рано говорить востребованности сей мероприятия. Поживем-увидим, как говорится. 🔗 Подробнее: https://www.infoq.com/news/2026/08/java-news-roundup-jul27-2026/
RestTemplate в статус @Deprecated в Spring Framework 7.1.
😄 Пора переходить на RestClient? Или еще подождем?
Хронология:
• Spring 6.1 — появился RestClient;
• Spring 7.1 — RestTemplate официально помечен как @Deprecated;
• Spring 8.0 — RestTemplate планируют удалить.
Для многих это конец целой эпохи.
RestTemplate появился ещё в 2009 году вместе со Spring 3 и больше 15 лет был стандартным способом отправлять HTTP-запросы. Но его API перестал масштабироваться.
Каждая новая фича требовала десятков перегруженных методов (getForObject(), exchange(), postForEntity()...), из-за чего развивать клиент становилось всё сложнее.
Видимо, именно поэтому Spring сделал ставку на RestClient — современный RestTemplate уже не надо. Если же поддерживаете существующий код, стоило бы запланировать постепенную миграцию, пока она не превратилась в обязательную.
Много кто у нас на RestClient сидит?
👍 Да, перешли.
🤔 Пока остаёмся на RestTemplate.
🔥 Для синхронных вызовов давно используем WebClient.
🔗 Release Notes Spring Framework 7.1: https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-7.1-Release-NotesWe noticed that the JAXB message converter can consume a lot of CPU resources at runtime, even if XML isn't being used by the application.В любом случае автоматическое определение компонентов не бесплатно само по себе. Это: - дополнительные проверки при старте; - лишняя работа ClassLoader; - расход CPU; - усложнение процесса инициализации. По отдельности это мелочи. Но именно из таких мелочей складывается время запуска современных приложений. Раньше фреймворк старался угадать, что может понадобиться разработчику. Теперь всё чаще действует другой принцип:
Не делай ничего, пока тебя об этом явно не попросили.И, кажется, это правильно. 🔗 Источник: Spring Framework 7.1 Release Notes https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-7.1-Release-Notes
Возможно ли, каким-то образом, обнаружить в процессе тестирования, что Hibernate под капотом делает что-то страшное?На деле вопрос очень интересный и практичный. Мы решили оформить его в небольшую статью в виде размышлений о том, какие вещи, в теории, можно попробовать. Данная статья не является исчерпывающим материалом, а больше аккамулирует опыт и рассказывает - что, на практике, имеет смысл, а что не очень. На деле, одними тестами тут обойтись будет тяжело. Лучше всего использовать комбинированный подход. 😎 Приятного чтения! 📎 Статья на Хабр: https://habr.com/ru/companies/spring_aio/articles/1068176/
AGENTS.md и Skills недостаточно. Агенту нужны инструменты, которые проверят результат и помогут найти ошибку.
В новом видео разбираем это на примере ArchUnit: агент нарушит архитектуру Spring-приложения, получит упавший тест и самостоятельно исправит код.Но видео не про ArchUnit. Оно про то, как тесты, линтеры и анализаторы создают для AI-агента обратную связь и помогают ему работать качественнее. 😉 СМОТРЕТЬ НА YOUTUBE 😄 СМОТРЕТЬ В VK ВИДЕО 🥰 СМОТРЕТЬ НА RUTUBE
