Spring АйО
8.43K subscribers
303 photos
209 videos
402 links
Русскоязычное сообщество Spring-разработчиков.

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

Канал для общения: @spring_aio_chat
Download Telegram
🛠 Structured Concurrency в Java: наконец-то находит опору

API structured concurrency в Java наконец-то обрёл устойчивость. В новом переводе от команды Spring АйО подробно рассматриваются последние изменения, появившиеся с выходом JEP 505: фабричный метод open(), политики Joiner'ов, улучшенная отмена задач, дедлайны, передача контекста через ScopedValues и строгая защита от ошибок использования. Всё это делает параллельное программирование в Java более безопасным, читаемым и управляемым.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/930812/
🔥23👍119
Forwarded from Amplicode
Media is too big
VIEW IN TELEGRAM
⚡️ Connekt: Новый HTTP-клиент для IntelliJ IDEA — теперь Open Source

Роман Елизаров, Илья Кучмин и Александр Шустанов:

🛑 Обсудили, почему стандартных инструментов в IDE и консольных тулов часто недостаточно для сложных сценариев.
🛑 Показали, как с помощью ConneKt просто вызывать HTTP-сервисы, строить цепочки запросов, извлекать данные из ответов и писать ассерты.
🛑 Разобрались, как использовать клиент в IDE, CI и консоли.

––––– Таймкоды –––––
00:00:00 – Хайлайты
00:00:41 – Вступление. О чём сегодня поговорим?
00:05:10 – Демо. Основные возможности Connekt и мощная интеграция со Spring Boot.
00:44:43 – Демо. Connekt и работа с защищенными эндпоинтами (авторизация, аутентификация, Spring Security)
00:59:51 – Демо. Работаем с внешним API используя Connekt. Формируем цепочки вызовов
01:17:55 – Заключение. А что еще умеет Connekt?


😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1912👍10
🧠 JEP 519: Компактные заголовки объектов — теперь официально!

Java 25 анонсирует ещё одну немаловажную фичу: компактные заголовки объектов (Compact Object Headers). Это позволит JVM экономить память и ускоряться без вмешательства в код.

Что это такое?
У каждого объекта в Java есть заголовок — служебные данные, которые JVM использует для синхронизации, GC и т.д. Обычно заголовок занимает 96 бит (12 байт) на 64-битных платформах.

С JEP 450 в Java 24 появится экспериментальная опция сжать заголовки до 64 бит (8 байт). JEP 519 делает это стабильной, проверенной фичей, которую можно безопасно включать прямо в проде.

Зачем?
– Минус 22% памяти в SPECjbb2015
– Минус 8% CPU в среднем
– Минус 15% сборок мусора в G1 и Parallel GC
– +10% скорость парсинга JSON

Для распределённых систем, высоконагруженных сервисов и микросервисов — это простой способ сэкономить ресурсы без переписывания кода.

Как включить?
В Java 25 больше не понадобится флаг


-XX:+UnlockExperimentalVMOptions


Теперь достаточно:

java -XX:+UseCompactObjectHeaders ...


Пруфы?
– Протестировано в проде на сотнях сервисов Amazon.
– Прогнано по полному тест-сьюту JDK в Oracle.
– Отдельные компании уже бэкпортят фичу на JDK 21 и 17.

Что важно знать?
– По умолчанию выключено.
– Не влияет на функциональность приложения.
– Может потребовать внимания в будущем, если другие фичи потребуют больше битов в заголовке (но для этого есть решения в рамках проектов Valhalla и Lilliput).

Обсудим в комментариях? 👇
👍37🔥1711
Media is too big
VIEW IN TELEGRAM
🍃 Новинки и перфоманс Java 25, паттерны и составные айдишники | Spring АйО Подкаст №28

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

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥85
Forwarded from OpenIDE
Друзья,

мы считаем важным, чтобы вокруг технологических инициатив сохранялась атмосфера уважения и конструктивного диалога.
Поэтому мы обратили внимание на недавнюю публикацию об инициативах компании JetBrains, которая не отражает официальную позицию OpenIDE.

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

OpenIDE — это независимая инициатива, основанная на открытых исходных кодах. Её цель — предоставить российским разработчикам удобные и доступные инструменты, учитывая текущие реалии.

Материалы по инициативе (перевод)

Ваша команда OpenIDE
29👍13🔥4👎2
🚀 Введение в Jimmer ORM

Совсем недавно статью про ORM-фреймворк Jimmer Михаила Поливахи, эксперта сообщества Spring АйО, опубликовал Baeldung.

Перед вами переработанная и дополненная версия, подготовленная специально для сообщества Spring АйО. В ней Михаил раскрывает ключевые особенности Jimmer: отсутствие JPA-наследия, декларативные DTO и гибкий DSL и потенциальную интеграцию со Spring.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/932096/
🔥196👍6🤔4
📊 Java в 2025 году: взгляд на результаты опроса Stack Overflow

Эксперт Spring АйО Рустам Курамшин разобрал свежий отчёт Stack Overflow за 2025 год о результатах ежегодного опроса разработчиков за 2025 год, и это отличный повод взглянуть на экосистему Java через призму статистики и интересов сообщества.

Что происходит с Java и где мы сегодня?

🥈 Java — в топе, но не в лидерах

Java остаётся устойчиво популярной, но теряет позиции в рейтинге языков, которыми реально пользуются. В 2025 году она набрала 29.4% среди всех респондентов — это седьмое место. Для сравнения:

🛑JavaScript — 66%
🛑Python — 57.9%
🛑TypeScript — 43.6%

Что интересно: C# проигрывает Java (27.8%), хотя отрыв минимальный. Kotlin находится далеко внизу с 10.8%.

👩‍💻 А как насчёт любви к Java?

В рейтинге «admired & desired» Java получила:

🛑15.8% хотят продолжать работать с ней
🛑41.8% тех, кто с ней работал, хотят продолжать

Это не худшие цифры, но явно не звёздные. Rust, например, вызывает желание продолжать у 72.4% разработчиков.

👩‍💻 Что по инструментам разработки?

Java-разработчики традиционно предпочитают инструменты JetBrains, и это подтверждается:

🛑IntelliJ IDEA — на 4 месте по популярности (27.1%) и на втором по желанию использовать (17.5%)

🛑VS Code по-прежнему вне конкуренции (используется 75.9%, желают 48.9%), но для серьёзной Java-разработки — не первый выбор

🛑Gradle и Maven уверенно держатся в середине таблицы среди сборщиков и DevOps-инструментов, уступая npm, Docker и Terraform.

👩‍💻 Java на бэкенде

Среди web-фреймворков Spring Boot — единственный представитель Java в топе, с 14.7% популярности. Это чуть меньше, чем у FastAPI (14.8%), и сильно меньше Node.js (48.7%) и React (44.7%).

Однако в категории "admired" Spring Boot выглядит лучше — 53.7% разработчиков, использовавших его, хотят продолжать. Это говорит о стабильности интереса к Spring Framework.

👩‍💻 Базы данных: знакомые лица

Всё, что любят Java-разработчики, — на месте:

🛑PostgreSQL — №1 по популярности и симпатиям

🛑MySQL, MongoDB, Redis — всё ещё в активной эксплуатации

🛑Даже H2 на удивление стабильно набирает 5%

⚙️ Выводы

Java остаётся мощной и зрелой экосистемой, но интерес разработчиков всё больше смещается в сторону Python и TypeScript — особенно в новых проектах и AI-направлениях.

Если мы хотим, чтобы Java оставалась актуальной, нужно:

🛑Делать ставку на современный стек

🛑Привлекать новых разработчиков через понятные и интересные точки входа вроде Spring Framework

📎 Полный отчёт: https://survey.stackoverflow.co/2025/technology/
Please open Telegram to view this post
VIEW IN TELEGRAM
32👍22🔥122🤔2
⚠️ Трансляция начнется уже через час!

Напомним, что в программе мероприятия:

🛑Зачем появилась OpenIDE
🛑Как она уже сегодня может снизить риски остаться без привычных инструментов разработки
🛑В чём её ценность для всей экосистемы
🛑Как работать с проектами на Go, Python и TypeScript
🛑И расскажем, как присоединиться к сообществу и развитию проекта

🗯 Чат трансляции: @openide_chat

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍135🔥5👎1
⚠️ Мы в эфире

Мероприятие откроют CEO и CTO OpenIDE — Фёдор и Илья Сазоновы — уже через пару минут. Они начнут с рассказа о том:
🛑Почему привычные IDE стали проблемой в условиях санкций и как OpenIDE помогает снять эти ограничения.
🛑Обсудят переход на полностью локальный стек, отказ от VPN и «плавающих» лицензий.
🛑Будут подняты темы о сборке IDE под Windows, macOS и Linux, ускоренной индексации и поддержке популярных плагинов

🗯 Чат трансляции: @openide_chat

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥74😁31👎1
⚠️ Второй доклад начинается

Продолжат мероприятие Александр Шустанов, Михаил Поливаха и Павел Кислов с докладом "Техническая демонстрация: один инструмент для многих языков"!

🗯 Чат трансляции: @openide_chat

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍158🔥5😁2
⚠️ Третий доклад начинается

Роман Елизаров и Павел Кислов проведут третий доклад "Не просто IDE: тренды в инструментах разработки и люди, которые их создают"!

🗯 Чат трансляции: @openide_chat

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍158🔥6😁1👌1
🎯 JEP 520: Метод-трейсинг и тайминг в JFR — замер времени конкретных методов без кода и агентов

В Java 25 JFR (Java Flight Recorder) позволит точно отслеживать выполнение конкретных методов — без изменения исходников, без логирования и без сторонних Java-агентов.

🧠 Зачем это нужно?

Допустим, приложение долго стартует или внезапно теряет соединения с БД. Раньше приходилось:

– Логировать вручную
– Добавлять JFR-события в код
– Подключать агент через -javaagent
– Пытаться угадать с sampling-профайлером
– Использовать Spring AOP и @Around-аспекты

Теперь всё можно сделать проще: точно, из коробки и с минимальной настройкой.

⚙️ Что добавили?

Два новых события в JFR:
🛑jdk.MethodTiming — считает вызовы, замеряет среднее, мин/макс время выполнения
🛑jdk.MethodTrace — пишет стек вызова и длительность каждого вызова

И самое главное: всё настраивается фильтрами, без изменений в коде!

🛠 Пример использования

Допустим, вы хотите посмотреть, как часто и как долго вызывается HashMap::resize.

🛑Запуск:


java -XX:StartFlightRecording=method-trace=java.util.HashMap::resize,filename=resize.jfr ...


🛑Анализ:


jfr print --events jdk.MethodTrace resize.jfr


🛑Пример вывода:


jdk.MethodTrace {
startTime = 00:39:26.379
duration = 0.00113 ms
method = java.util.HashMap.resize()
eventThread = "main"
stackTrace = [
java.util.HashMap.putVal(...)
java.util.HashMap.put(...)
...
java2d.J2Ddemo.main(String[]) line: 674
]
}


Как ещё можно использовать?

🛑Замерить все <clinit> и понять, что тормозит:


-XX:StartFlightRecording:method-timing=::<clinit>,filename=init.jfr


🛑Отслеживать методы с аннотацией @Get из JAX-RS:


jcmd <pid> JFR.start method-timing=@jakarta.ws.rs.GET


🛑Сравнивать, сколько раз и с каким временем выполнялся метод:


<setting name="filter">
com.example.Foo::doSomething;
com.example.Bar::handle
</setting>


Какой результат?

После запуска вы получаете .jfr-файл, который можно:
– Просмотреть через jfr print или jfr view
– Подгрузить в JDK Mission Control
– Анализировать удалённо через JMX/RemoteRecordingStream

В чём польза?

🛑Быстро находим горячие методы
🛑Точно отслеживаем, что вызывает FileDescriptor::close
🛑Проверяем гипотезу, стал ли метод быстрее после оптимизации
🛑Отлаживаем проблемы без доступа к коду сторонних библиотек

Вывод

Можно будет не модифицировать код, городить прокси или запускать -javaagent. Достаточно задать нужный фильтр, чтобы точно знать, где и когда выполняется нужный метод.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36🔥256