ar
Feedback
Java

Java

الذهاب إلى القناة على Telegram

Самая актуальная информация по Java По всем вопросам- @haarrp @itchannels_telegram - 🔥лучшие каналы @pythonl - 🐍 @ai_machinelearning_big_data- ml @ArtificialIntelligencedl - AI @datascienceiot - ds @pythonlbooks 📚 РКН: clck.ru/3FmwKr #VRHSZ

إظهار المزيد

📈 نظرة تحليلية على قناة تيليجرام Java

تُعد قناة Java (@javatg) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 16 799 مشتركاً، محتلاً المرتبة 7 526 في فئة التكنولوجيات والتطبيقات والمرتبة 39 169 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 16 799 مشتركاً.

بحسب آخر البيانات بتاريخ 04 سبتمبر, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -16، وفي آخر 24 ساعة بمقدار -4، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 11.32‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 5.24‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 1 902 مشاهدة. وخلال اليوم الأول يجمع عادةً 881 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 12.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل github, void, api, kotlin, static.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
Самая актуальная информация по Java По всем вопросам- @haarrp @itchannels_telegram - 🔥лучшие каналы @pythonl - 🐍 @ai_machinelearning_big_data- ml @ArtificialIntelligencedl - AI @datascienceiot - ds @pythonlbooks 📚 РКН: clck.ru/3FmwKr #VR...

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 05 سبتمبر, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.

16 799
المشتركون
-424 ساعات
+277 أيام
-1630 أيام
جذب المشتركين
سبتمبر '26
سبتمبر '26
+35
في 8 قنوات
أغسطس '26
+181
في 39 قنوات
Get PRO
يوليو '26
+204
في 1 قنوات
Get PRO
يونيو '26
+132
في 0 قنوات
Get PRO
مايو '26
+70
في 1 قنوات
Get PRO
أبريل '26
+66
في 1 قنوات
Get PRO
مارس '26
+320
في 22 قنوات
Get PRO
فبراير '26
+180
في 46 قنوات
Get PRO
يناير '26
+378
في 127 قنوات
Get PRO
ديسمبر '25
+153
في 3 قنوات
Get PRO
نوفمبر '25
+205
في 43 قنوات
Get PRO
أكتوبر '25
+103
في 13 قنوات
Get PRO
سبتمبر '25
+139
في 38 قنوات
Get PRO
أغسطس '25
+375
في 9 قنوات
Get PRO
يوليو '25
+432
في 76 قنوات
Get PRO
يونيو '25
+452
في 73 قنوات
Get PRO
مايو '25
+251
في 1 قنوات
Get PRO
أبريل '25
+217
في 28 قنوات
Get PRO
مارس '25
+208
في 1 قنوات
Get PRO
فبراير '25
+220
في 41 قنوات
Get PRO
يناير '25
+311
في 43 قنوات
Get PRO
ديسمبر '24
+600
في 64 قنوات
Get PRO
نوفمبر '24
+1 051
في 189 قنوات
Get PRO
أكتوبر '24
+1 867
في 68 قنوات
Get PRO
سبتمبر '24
+719
في 202 قنوات
Get PRO
أغسطس '24
+663
في 42 قنوات
Get PRO
يوليو '24
+768
في 52 قنوات
Get PRO
يونيو '24
+867
في 58 قنوات
Get PRO
مايو '24
+486
في 36 قنوات
Get PRO
أبريل '24
+817
في 46 قنوات
Get PRO
مارس '24
+777
في 21 قنوات
Get PRO
فبراير '24
+775
في 5 قنوات
Get PRO
يناير '24
+811
في 46 قنوات
Get PRO
ديسمبر '23
+156
في 38 قنوات
Get PRO
نوفمبر '23
+3 105
في 57 قنوات
Get PRO
أكتوبر '23
+203
في 20 قنوات
Get PRO
سبتمبر '23
+484
في 0 قنوات
Get PRO
أغسطس '23
+1 199
في 0 قنوات
Get PRO
يوليو '23
+1 849
في 0 قنوات
Get PRO
يونيو '23
+646
في 0 قنوات
Get PRO
مايو '23
+615
في 0 قنوات
Get PRO
أبريل '23
+1 217
في 0 قنوات
Get PRO
مارس '23
+3 950
في 0 قنوات
Get PRO
فبراير '23
+330
في 0 قنوات
Get PRO
يناير '23
+2 306
في 0 قنوات
Get PRO
ديسمبر '22
+640
في 0 قنوات
Get PRO
نوفمبر '22
+488
في 0 قنوات
Get PRO
أكتوبر '22
+751
في 0 قنوات
Get PRO
سبتمبر '22
+628
في 0 قنوات
Get PRO
أغسطس '22
+197
في 0 قنوات
Get PRO
يوليو '22
+923
في 0 قنوات
Get PRO
يونيو '22
+339
في 0 قنوات
Get PRO
مايو '22
+1 180
في 0 قنوات
Get PRO
أبريل '22
+823
في 0 قنوات
Get PRO
مارس '22
+3 055
في 0 قنوات
Get PRO
فبراير '22
+928
في 0 قنوات
التاريخ
نمو المشتركين
الإشارات
القنوات
05 سبتمبر+1
04 سبتمبر+3
03 سبتمبر+4
02 سبتمبر+10
01 سبتمبر+17
منشورات القناة
🚀 Spring Boot 4 меняет подход к тестовым зависимостям Теперь для каждой технологии используется свой test starter по схеме:
🚀 Spring Boot 4 меняет подход к тестовым зависимостям Теперь для каждой технологии используется свой test starter по схеме: spring-boot-starter-*-test Например, для Spring Security: spring-boot-starter-security-test Что это даёт: - у каждой технологии свой тестовый starter - spring-boot-starter-test подтягивается транзитивно - зависимости для тестов становятся понятнее и аккуратнее - меньше ручной сборки test classpath Для Security-тестов в Spring Boot 4 лучше подключать именно ...-security-test, а не отдельный spring-security-test.

2
Школа программирования Java Online Projects поздравляет с Днем Знаний!🧑‍🎓📚 Вышло наше финальное занятие курса по Микросерв
Школа программирования Java Online Projects поздравляет с Днем Знаний!🧑‍🎓📚 Вышло наше финальное занятие курса по Микросервисной архитектуре — «Нагрузочное тестирование. Gatling». На нем мы на практике разбираем, как наше приложение ведет себя под реальной высокой нагрузкой. Вместе с ним мы запускаем последнюю акцию перед подорожанием: 🔥 Скидка 50% на курсы «Микросервисы, Kafka, Docker Spring Cloud, WebFlux» и «Деплой микросервисов в Kubernetis/Helm» ✨ Бонусы: выпускные проекты Rescue Service и TopJava2 ✨ Курс TopKotlin или DocJava в подарок Суперпредложение: скидка 55% скидка на всю линейку Микросервисов + все бонусы включены🔥 Программа на 100% покрывает продвинутый стек компетенций: ✨ Архитектура и веб-стек — начинаем с реактивных приложений: Project Reactor, Spring WebFlux, R2DBC. Дальше переходим на Spring Boot 4 — полный MVC-стек и виртуальные потоки (Virtual Threads). ✨ Инфраструктура Spring Cloud — отказоустойчивые системы на Spring Cloud Gateway и Config Server, паттерны Circuit Breaker, RateLimiter, Retry. ✨ Event-Driven & Data — асинхронное взаимодействие через Kafka, сериализация в Avro и хранение схем в Schema Registry, паттерн Outbox с Kafka Connect и Debezium поверх PostgreSQL, Hibernate/JPA и миграции Flyway. ✨ Безопасность — сквозная аутентификация и авторизация на Keycloak, OAuth 2.0, OpenID Connect и JWT, защита от CSRF, хранение сессий в Redis. ✨ Тестирование и качество — интеграционные тесты с Testcontainers, WireMock и Awaitility, проверка под высокой нагрузкой с Gatling. ✨ Observability — метрики, логи и распределенные трассировки через Micrometer, Prometheus, Loki, Tempo (или Zipkin) и визуализация всего этого в Grafana. ✨ DevOps и развертывание — пайплайны в GitHub Actions, Docker и Docker Compose, оркестрация в Kubernetes, управление релизами через Helm. 🚀 Больше 30 технологий в одной линейке! Успейте забрать курсы по суперцене до окончания акции! 💥 ИНН: 782581076920 ОГРНИП: 317784700063201 ИП Кислин Григорий Ефимович, erid: 2VtzqvsC3jZ
789
3
Spring Boot 4 улучшил наблюдаемость Redis через Observation API. Теперь команды Redis можно автоматически связывать с метрика
Spring Boot 4 улучшил наблюдаемость Redis через Observation API. Теперь команды Redis можно автоматически связывать с метриками и трассировками: - latency операций - spans для Redis-команд - ошибки и длительность запросов - интеграция с общей системой наблюдаемости приложения Особенно удобно использовать это вместе с OpenTelemetry starter, чтобы Redis сразу попадал в единый tracing и metrics pipeline. Для продакшена это полезно тем, что проблемы Redis можно видеть не отдельно, а прямо внутри полного пути запроса через приложение. #SpringBoot4 #Redis
1 267
4
Spring Boot 4: консольные логи теперь можно отключить одной настройкой. logging: console: enabled: false Полезно для продакше
Spring Boot 4: консольные логи теперь можно отключить одной настройкой. logging: console: enabled: false Полезно для продакшена и контейнеров, где логи уходят не в stdout, а, например, в файл или через OTLP. При этом остальные способы логирования можно оставить: • file appender • удалённый сбор логов • OTLP • собственные appenders Удобная мелочь, которая позволяет не городить отдельную конфигурацию Logback только ради отключения консоли.
1 572
5
💡 Java: не используй `Thread.sleep()` для ожидания работы Thread.sleep() - это просто пауза на заданное время. Проблема в то
💡 Java: не используй `Thread.sleep()` для ожидания работы Thread.sleep() - это просто пауза на заданное время. Проблема в том, что ты угадываешь: ❌ поток может проснуться слишком рано ❌ или наоборот, ждать дольше, чем нужно ❌ polling через sleep() создаёт лишние задержки и проверки Для координации потоков лучше использовать: ✅ wait() / notify() ✅ CountDownLatch ✅ другие примитивы синхронизации из java.util.concurrent Например: CountDownLatch done = new CountDownLatch(1); done.await(); // ждём сигнал done.countDown(); // работа завершена А если задача должна выполняться периодически, вместо бесконечного цикла с sleep() лучше взять ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor(); exec.scheduleAtFixedRate( this::doWork, 0, 1, TimeUnit.SECONDS ); Thread.sleep() хорошо подходит для простой задержки. Для ожидания события и периодических задач в Java есть более точные инструменты. #Java #Concurrency
1 871
6
🚀 Spring Boot 4 упростил работу с MongoDB health checks Теперь для проверки состояния MongoDB больше не нужен Spring Data. Ч
🚀 Spring Boot 4 упростил работу с MongoDB health checks Теперь для проверки состояния MongoDB больше не нужен Spring Data. Что изменилось: - health indicators переехали в spring-boot-mongodb - работают напрямую с MongoDB driver - для /actuator/health достаточно spring-boot-starter-mongodb - Spring Data подключать не обязательно То есть если сервис работает с MongoDB напрямую через драйвер, health check всё равно можно получить без лишней зависимости. Полезное изменение для более лёгких Spring Boot 4 сервисов.
1 959
7
Java-ловушка: . в формате числа не всегда означает точку В DecimalFormat шаблон вроде: #,###.## не гарантирует вывод 1,234.56
Java-ловушка: . в формате числа не всегда означает точку В DecimalFormat шаблон вроде: #,###.## не гарантирует вывод 1,234.56. Символы зависят от locale: 🇺🇸 US → 1,234.56 🇮🇹 Italy → 1.234,56 Поэтому если формат предназначен для конкретной страны, лучше задавать её явно: DecimalFormatSymbols it = new DecimalFormatSymbols(Locale.ITALY); DecimalFormat format = new DecimalFormat("#,###.##", it); Иначе приложение может внезапно начать форматировать числа иначе просто потому, что JVM запустили с другой локалью. Мелочь, которая особенно неприятно всплывает в деньгах, отчётах и CSV.
2 146
8
🖥 Java: почему 1.234,56 ломает Double.parseDouble() В Java число - это не всегда просто строка с точкой. Например: Double.pa
🖥 Java: почему 1.234,56 ломает Double.parseDouble() В Java число - это не всегда просто строка с точкой. Например: Double.parseDouble("1.234,56"); закончится NumberFormatException. Проблема в локали: в разных странах . и , означают разное. Для таких случаев лучше использовать: NumberFormat format = NumberFormat.getInstance(Locale.ITALY); Number value = format.parse("1.234,56"); double n = value.doubleValue(); Получим: 1234.56 Главное правило: если число пришло от пользователя, из CSV или внешней системы — сначала узнай его locale. Иначе можно получить не только ошибку, но и тихо распарсить совсем не то число.
2 183
9
⚡️ Spring Boot 4: `@ConfigurationPropertiesSource` для типов из других модулей В Spring Boot 4 появилась полезная штука для к
⚡️ Spring Boot 4: `@ConfigurationPropertiesSource` для типов из других модулей В Spring Boot 4 появилась полезная штука для конфигурации больших проектов. @ConfigurationPropertiesSource позволяет генерировать metadata для типов, которые находятся не в текущем модуле, а, например, в общей библиотеке или отдельном starter-модуле. Раньше с такими внешними типами IDE-подсказки для application.yml и application.properties могли быть неполными или вообще отсутствовать. Теперь можно явно указать источник конфигурационных свойств и получить нормальную metadata даже для внешних классов. Особенно полезно для: — multi-module проектов — внутренних Spring Boot starter'ов — shared configuration libraries — больших платформенных команд Мелкая фича, но для DX в крупных Spring Boot проектах очень приятная. #SpringBoot4 #Config
2 113
10
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажется. Собрал папки и каналы, где можн
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажется. Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре. AI: t.me/ai_machinelearning_big_data Python: t.me/pythonl Linux: t.me/linuxacademiya Хакинг: t.me/linuxkalii DevOps: t.me/DevOPSitsec Docker: https://t.me/+90Z5TAyfuNU5YmRi Golang: t.me/Golang_google Rust: t.me/rust_code C++: t.me/cpluspluc C#: t.me/csharp_1001_notes Java: t.me/javatg JavaScript: t.me/javascriptv React: t.me/react_tg Frontend: t.me/front PHP: t.me/phpshka Android: t.me/android_its Мобильная разработка: t.me/mobdevelop Базы данных: t.me/sqlhub Data Science: t.me/data_analysis_ml Big Data: t.me/bigdatai Математика: t.me/data_math Физика: t.me/fizmat Kubernetes: t.me/kubernetc GameDev: https://t.me/gamedev Haskell: t.me/haskell_tg Собеседования и карьера: DS собеседования: t.me/machinelearning_interview Python собеседования: t.me/python_job_interview Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy Полезное сверху: ИТ-мемы: t.me/memes_prog Английский для программистов: t.me/english_forprogrammers ИИ и технологии: t.me/vistehno 954 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy Max Ai: https://max.ru/ai_machinelearning_big_data Max python: https://max.ru/pythonl ТЕХНО: https://max.ru/vistehno Max Go: https://max.ru/Golang_google Max Linux: https://max.ru/linuxkalii Devops: https://max.ru/DevOPSitsec C#: https://max.ru/csharp_ci C++: https://max.ru/cpluspluc SQL: https://max.ru/sqlhub Java: https://max.ru/javatg Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
1 725
11
Java Records: меньше шаблонного кода для обычных data-классов Если класс нужен в основном для хранения данных, record позволя
Java Records: меньше шаблонного кода для обычных data-классов Если класс нужен в основном для хранения данных, record позволяет сильно сократить код. Вместо обычного класса с полями, конструктором, equals(), hashCode() и toString() можно написать: public record User(String name, int age, String email) {} Java сама создаст: user.name(); user.age(); user.email(); user.equals(other); user.hashCode(); user.toString(); При этом record остаётся неизменяемым по ссылкам на свои компоненты: сеттеров нет, а поля фактически final. Можно добавить и компактный конструктор для валидации: public record User(String name, int age, String email) { public User { if (age < 0) { throw new IllegalArgumentException("Age cannot be negative"); } } } Records появились как preview в Java 14 и стали полноценной частью языка в Java 16. Удобный вариант для DTO, результатов запросов, событий, конфигурационных объектов и других небольших структур данных.
1 636
12
25 августа встречаемся на Agentic Coding Meetup в Сбер.Среде и в онлайне⚡️ AI-агенты уже умеют писать код. Но самое интересно
25 августа встречаемся на Agentic Coding Meetup в Сбер.Среде и в онлайне⚡️ AI-агенты уже умеют писать код. Но самое интересное начинается дальше — когда вместе с инструментами меняются роли инженеров, команды и сам процесс разработки. 🔥 Поговорим о том, как agentic coding выглядит на практике: новые инженерные роли и модели команд, SDD и трансформация процессов, coding-агенты и инструменты, подходы к постановке задач и управлению контекстом, а также опыт внедрения AI в разработку больших технологических компаний. ⏳ Начало в 17:00, встреча очных гостей — в 16:00. Количество очных мест ограничено — успейте зарегистрироваться!
1 497
13
В Java clone() легко принять за полноценную копию объекта. Но super.clone() делает только shallow copy. Сам объект будет новы
В Java clone() легко принять за полноценную копию объекта. Но super.clone() делает только shallow copy. Сам объект будет новым, а ссылки на вложенные объекты останутся прежними. То есть: Main shallow = (Main) super.clone(); shallow и оригинал будут разными объектами, но dependency у них может указывать на один и тот же экземпляр. Поэтому изменение вложенного объекта через одну копию неожиданно отразится и в другой. Для deep copy нужно отдельно клонировать вложенные поля: Main deep = (Main) super.clone(); deep.setDependency((Dependency) this.dependency.clone()); Теперь dependency тоже будет отдельным объектом. Мелочь, на которой легко поймать очень неприятный баг: clone() копирует оболочку, а не весь граф объектов.
1 688
14
☕️ В Spring Boot 4 появился новый JmsClient - более современная альтернатива привычному JmsTemplate. Главное отличие - fluent
☕️ В Spring Boot 4 появился новый JmsClient - более современная альтернатива привычному JmsTemplate. Главное отличие - fluent API, из-за которого код отправки и получения сообщений становится заметно чище. При этом JmsTemplate никуда не исчезает и продолжает работать без изменений. Для старых проектов переписывать ничего не нужно, а для нового JMS-кода Spring теперь рекомендует смотреть в сторону JmsClient. #SpringBoot4 #JMS
2 092
15
🔴 Тестовый собес с Java-разработчиком уже завтра! [+ разбор 50 сложных вопросов в подарок ] 19 августа (уже завтра!) в 19:00
🔴 Тестовый собес с Java-разработчиком уже завтра!  [+ разбор 50 сложных вопросов в подарок ] 19 августа (уже завтра!) в 19:00 по мск приходи онлайн, чтобы посмотреть на настоящее интервью на Middle Java-разработчика! Собеседование проведёт Сергей Чамкин - старший разработчик из Uzum, ex-WildBerries Как это будет: 📂 Сергей задаст разработчику-добровольцу вопросы и задачи, которые могут спросить на реальном собесе 📂 После каждого ответа респондента ты услышишь подробный комментарий от ментора и поймёшь, чего на самом деле ожидает собеседующий на интервью 📂 В конце сможешь задать любой вопрос Сергею и получить на него развёрнутый ответ Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы Но ты можешь посмотреть его бесплатно 🔥 Только завтра, в прямом эфире! 🎁 Подарок для всех, кто зарегается на веб — файл с ОТВЕТАМИ НА 50 СЛОЖНЫХ ВОПРОСОВ с Java-собеседований 🔥 Жми на кнопку, чтобы попасть на эфир и забрать подарок ↓ @shortcut_sh_bot  Реклама. О рекламодателе.
1 896
16
☕ Java-баг, который выглядит нормально, но ломает `HashMap` Что выведет этот код? Map, String&gt; map = new HashMa
☕ Java-баг, который выглядит нормально, но ломает `HashMap` Что выведет этот код? Map<List<Integer>, String> map = new HashMap<>(); List<Integer> key = new ArrayList<>(List.of(1, 2)); map.put(key, "Ritesh"); key.add(3); System.out.println(map.get(key)); Многие ожидают: Ritesh Но результат: ```text null ``` Почему? HashMap ищет ключ через: ```java hashCode() equals() ``` Когда мы сделали: ```java map.put(key, "Ritesh"); ``` ключ был: ```text [1, 2] ``` У него был один hashCode. Но потом: ```java key.add(3); ``` ключ стал: ```text [1, 2, 3] ``` И его hashCode изменился. HashMap уже положил объект в bucket по старому hash, а при get() ищет по новому. Схема: ```text put() [1,2] hash = X ↓ bucket X key.add(3) [1,2,3] hash = Y get() ищем bucket Y → запись не найдена ``` Главное правило: ❌ Не изменяйте объект после того, как использовали его как ключ в HashMap. Лучше использовать: ✅ String ✅ Integer ✅ record ✅ immutable-объекты Например: ```java Map<List<Integer>, String> map = new HashMap<>(); List<Integer> key = List.of(1, 2); map.put(key, "value"); ``` Самые опасные баги в Java - те, где объект всё ещё существует, ссылка всё та же, но структура данных уже не может его нормально найти. #java #backend #programming
1 735
17
💡 В Java можно избавиться от лишнего cast после instanceof. Старый вариант: if (animal instanceof Dog) { Dog d = (Dog) anima
💡 В Java можно избавиться от лишнего cast после instanceof. Старый вариант: if (animal instanceof Dog) { Dog d = (Dog) animal; d.bark(); } С pattern matching переменная объявляется прямо в проверке: if (animal instanceof Dog d) { d.bark(); } d существует только там, где условие instanceof гарантированно истинно. Меньше кода, меньше лишних приведений типов и проще читать. #Java #PatternMatching
2 107
18
لا يوجد نص...
2 377
19
⚡️ Spring Boot 4: для интеграционных тестов REST лучше переходить с TestRestTemplate на RestTestClient. Почему это удобнее: -
⚡️ Spring Boot 4: для интеграционных тестов REST лучше переходить с TestRestTemplate на RestTestClient. Почему это удобнее: - fluent API в стиле RestClient; - одинаковый подход для тестов через MockMvc и реальный HTTP-порт; - проще читать цепочки request → response → assertions; - меньше привязки к старому TestRestTemplate. Пример: restTestClient.get() .uri("/api/users/42") .exchange() .expectStatus().isOk() .expectBody(User.class) .value(user -> assertThat(user.id()).isEqualTo(42)); Если автоконфигурация не подтянулась автоматически, добавляем: @AutoConfigureRestTestClient Если начинаете новый проект на Boot 4, TestRestTemplate уже вряд ли стоит выбирать по привычке. #SpringBoot4 #Java #RestTestClient #Testing
2 666
20
Вам доклады по Go или Java? VK приглашает на митап с двойной начинкой 26 августа VK собирает Go- и Java-инженеров, чтобы прок
Вам доклады по Go или Java? VK приглашает на митап с двойной начинкой 26 августа VK собирает Go- и Java-инженеров, чтобы прокачать знания. В программе два трека — Go и Java, по три доклада в каждом. Трек Go: • «Компиляция Go в динамическую либу, или как мы ускорили выкатку фичи в два раза, но нам не понравилось», Михаил Кичигин, бэкенд-разработчик, Avito Tech • «Go-платформа VK: как мы построили единую основу для создания Go-сервисов», Александр Апанасенко, руководитель команды SDK Backend, VK • «Почтальон от Kubernetes до Palo Alto. Как осуществляется доставка информации об адресах», Дарья Кулькина, бэкенд-разработчик, Точка Банк Трек Java: • «Перформанс-трюки в поисковой платформе Ozon», Пётр Портнов, ведущий разработчик среднего поиска, Ozon • «Архитектура современного движка платёжной системы и переход к новой архитектуре», Игорь Крикунов, технический лидер разработки DBC, Альфа-Банк • «Переход от федерации S3-кластеров в пользу коммунального и мультитенантного кластера», Кирилл Боблак, ведущий разработчик One-cloud, VK А ещё будет мастер-класс по прокачке навыка, который сделает вас звездой любого вечера, и афтепати, чтобы обсудить доклады в неформальной обстановке. Встречаемся в 17:00, начало в 18:00. Участие бесплатное, регистрация обязательна.
2 336