Spring АйО – Telegram
Spring АйО
9.58K subscribers
375 photos
273 videos
490 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
⚠️ Третий доклад начинается

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

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

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍168🔥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

В чём польза?

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

Вывод

Можно будет не модифицировать код, городить прокси или запускать -javaagent. Достаточно задать нужный фильтр, чтобы точно знать, где и когда выполняется нужный метод.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍38🔥257
Media is too big
VIEW IN TELEGRAM
🍃 54 минуты с Михаилом Поливахой | Spring АйО Подкаст №29

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

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11😁9🔥6🤯31
⚡️ Он помогает Java-разработчикам по всей стране! Интервью с Владимиром Плизга

На JPoint 2025 мы пообщались с Владимиром Плизга — инженером Tibbo Systems, спикером, тренером и автором Telegram-канала «Верхняя полка».

Владимир — настоящий энтузиаст: разрабатывает инструменты для упрощения жизни бэкенд-разработчиков, делится опытом на конференциях и митапах, пишет статьи и ведёт тренинги по производительности Java-приложений.

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE

Это только начало — впереди ещё больше бесед с интересными людьми из мира Java и Spring.
Please open Telegram to view this post
VIEW IN TELEGRAM
20🔥9👍8
👩‍💻 Java и ООП: путешествие туда и обратно

Эксперт Spring АйО, Илья Сазонов, подготовил статью:

Недавно на подкасте Spring АйО мы обсуждали новые свитчи в Джаве - с паттерн-матчингом и деструктуризацией. Я тогда ещё выразил мнение, что всё это неправославно, по-зумерски и отход от принципов ООП.

Не от инкапсуляции, полиморфизма и наследования, а вообще от подхода. Новые свитчи будут провоцировать разработчиков писать код по-новому, а не так, как завещали нам наши далёкие предки. С нарушением традиций, норм и устоев. Как учит Кейси Муратори, если вы понимаете о ком я.

Но какие они вообще были, эти устои? Каким было ООП, когда всё только началось и чем это отличается от свитчей, до которых мы в конце концов докатились?


📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/934514/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍115🔥4😁1
🔄 Kafka умеет синхронно. В Spring Boot

Apache Kafka — король асинхронного взаимодействия в микросервисных архитектурах. Но что если нужно получить ответ сразу?

Перевод от команды Spring АйО шаг за шагом покажет, как превратить Kafka в инструмент синхронной коммуникации — с настройкой ReplyingKafkaTemplate, топиками для ответа и тайм-аутами.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/934936/
19👍12🔥7👎3🤯3🤔2
👌 Конфигурация Spring Security на пальцах

В новом переводе от команды Spring АйО мы рассмотрим решение для регистрации и аутентификации пользователя через клиентское JavaScript-приложение с использованием инфраструктуры Spring Security, а также access и refresh токенов.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/935470/
🔥1712👍7👎1
Forwarded from Amplicode
Media is too big
VIEW IN TELEGRAM
🏝 Kotlin в Amplicode — полная поддержка из коробки

Павел Кислов и Вячеслав Чернышов:
🛑 Посмотрели на то, как Amplicode поддерживает Kotlin на всех этапах: от генерации кода до локального окружения, подсказок неочевидного и работы с базой данных
🛑 Разбирались, какие фичи ускоряют разработку, как проектировать Spring-приложение и сразу получать готовые CRUD-экраны
🛑 Всё это — без боли и с полной поддержкой Kotlin
🛑 Ну и, конечно, не обошлось без обсуждения каноничных Kotlin-практик и диалога на эту тему

––––– Таймкоды –––––
00:00:00 – Хайлайты
00:00:39 – Вступление. О чём сегодня поговорим?
00:03:52 – Демо. Знакомимся с проектом, настраиваем окружение, изменяем модельку, пишем миграционные скрипты
00:16:13 – Демо. Пишем REST'ы! Много DTO, мапперов и бизнес-логики
00:56:42 – Демо. Тестируем написанное руками через HTTP-клиент
01:09:15 – Демо. Дебажим. Что-то поломали 🙁
01:15:45 – Демо. Проверяем исправления.
01:16:30 – Демо. Пишем интеграционные и unit тесты
01:28:03 – Закругляемся. Всем спасибо 🙂


😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍157🔥4😁1