Чашечка Java
Відкрити в Telegram
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels
Показати більше8 453
Підписники
-424 години
-187 днів
-6030 день
Архів дописів
8 452
ActiveMQ Artemis vs Apache Kafka
Добрый день. Сегодня мы поговорим о двух мощных технологиях для асинхронного обмена данными — ActiveMQ Artemis и Apache Kafka. Мы разберемся, что они из себя представляют, как устроены под капотом, и главное — в каких ситуациях стоит выбрать одну, а в каких другую.
Наш план на сегодня довольно насыщенный. Мы начнем с того, почему вообще все пришли к асинхронному общению сервисов. Затем подробно разберем ActiveMQ Artemis — что это и какие задачи решает. Заглянем в его техническую архитектуру, чтобы понять источник его производительности. После этого мы кратко вспомним основы Apache Kafka, чтобы затем перейти к самому интересному — детальному сравнению. Мы составим четкие рекомендации, поговорим о нагрузочных характеристиках и подведем итоги.
Читать: https://habr.com/ru/articles/959660/?utm_campaign=959660
@a_cup_of_java | Другие наши каналы
8 452
Kafka для начинающих: работа с брокером сообщений на практике
Как работать с Kafka на практике, используя Spring Boot?
Разбираем базовые практические моменты на примере интернет-магазина.
Простым языком и с примерами кода о настройке Kafka-кластера, об основных аннотациях и методах Spring Boot для работы с Kafka.
Читать: https://habr.com/ru/articles/958450/?utm_campaign=958450
@a_cup_of_java | Другие наши каналы
8 452
Controller vs RestController в Spring: ключевые отличия
В статье Java67 объясняется: @Controller возвращает view (HTML), @RestController — данные (JSON/XML) и фактически равен @Controller + @ResponseBody. Описаны также различия в аннотациях маппинга запросов (@RequestMapping vs @GetMapping и др.). Полный справочник по Java и смежным технологиям
В статье собраны учебники, разборы и вопросы для интервью по Java, Spring, Concurrency, базам данных, DevOps, ML и другим направлениям — полезная подборка курсов, примеров и ссылок для изучения и подготовки к собеседованиям. Обновления Spring Boot: полезная подборка
В блоге Soma Sharma собраны практические решения: таймауты REST, ошибки с bean'ами, работа с Thymeleaf, чтение ресурсов, примеры WebClient и доступ к контроллерам. Краткий обзор с ссылками на подробные инструкции.
Подробности: http://www.java67.com/2023/08/spring-controller-vs-restcontroller.html
#en
@a_cup_of_java | Другие наши каналы
8 452
RequestParam vs PathVariable в Spring MVC — простая разница
В статье объясняется разница между @RequestParam и @PathVariable: @RequestParam берёт query/form-параметры (опционально, с default), @PathVariable захватывает динамические части URL (обязательно). Примеры и советы для практического применения. Большой каталог тем для разработчиков
В статье собран обширный список материалов: Java, Spring, backend, DevOps, ML, базы данных, web и интервью-вопросы. Полезно для поиска статей, курсов и подготовки к собеседованиям. Полная коллекция по Spring и Spring Boot — в блоге Soma Sharma собраны руководства, примеры, решения ошибок, фичи Spring 6/Boot 3, тестирование и интервью‑вопросы для Java‑разработчиков. Полезно для практики и повышения квалификации.
Подробности: http://www.java67.com/2023/08/difference-between-requestparam-and.html
#en
@a_cup_of_java | Другие наши каналы
8 452
OAuth 2.0 vs JWT: в чем разница?
По материалам Java67: OAuth 2.0 — протокол авторизации с короткоживущими access-токенами и сложным флоу; JWT — самодостаточный токен для аутентификации и SSO, проще в использовании, но требует надёжной защиты. Читайте статью на Java67. Полный каталог тем по программированию
На сайте собран обширный индекс: Java и Spring, Docker, Python, ML, базы данных, фронтенд и DevOps, а также подборки интервью‑вопросов, курсов и практических руководств для изучения и подготовки к собеседованиям. Архив блога Soma Sharma — статистика публикаций по годам
В статье перечислена структура архива: годы и месяцы с числом постов (например, 2024 — 192, 2023 — 385), а также разделы Privacy, Terms, Popular Posts, подписка и копирайт. Удобно для поиска материалов по датам.
Подробности: http://www.java67.com/2023/06/differences-between-oauth-20-and-jwt.html
#en
@a_cup_of_java | Другие наши каналы
8 452
Как вернуть разные типы контента из Spring MVC Controller
В статье Java67 показаны три способа: @RequestMapping с consumes/produces, ResponseEntity и возврат Map<string,object. Разъясняется, как задать Content-Type и приведены примеры для JSON, text/plain и т.д. Полезно для разработчиков Spring. Обширный навигатор по Java, Spring и IT-ресурсам
На блоге Javarevisited собрана большая коллекция тегов и статей: Java, Spring, Spring Boot, Microservices, базы данных, DevOps, ML и курсы. Полезно для подготовки к интервью и быстрого поиска туториалов. Подборка решений для Spring Boot
В статье собраны краткие инструкции по распространённым проблемам: Embedded DB, запуск контекста, Mockito, DialectResolutionInfo, вывод SQL, таймауты, контроллеры, чтение ресурсов и примеры WebClient. Полезно для быстрого поиска решения.
Подробности: http://www.java67.com/2021/10/3-ways-to-send-different-content-types.html
#en @a_cup_of_java | Другие наши каналы
8 452
Интегрируем ресивер Триколора с «Домом с Алисой» с помощью Java и Spring
Привет! Меня зовут oldzoomer, и я хочу рассказать, как я подключил приёмник Триколор к экосистеме Яндекса, чтобы управлять им голосом через Алису. Всё сделано на Java 21, Spring Boot и официальном Stingray TV API - без хаков и модификаций прошивки.
Читать: https://habr.com/ru/articles/959178/?utm_campaign=959178
@a_cup_of_java | Другие наши каналы
8 452
Как @Component в Spring управляет зависимостями
В статье объясняется, что аннотация @Component помечает класс как bean, Spring сканирует такие классы и создаёт экземпляры для автосвязывания. @Component — основа для @Service, @Repository и @Controller, важная деталь DI в Spring.
Подробности: http://www.java67.com/2023/04/what-is-component-annotation-in-spring.html
#en
@a_cup_of_java | Другие наши каналы
8 452
Лучшее по Java и Spring Boot
В статье Java67 объясняют, почему Spring Boot не находит сущности (ошибка «not a managed type») и предлагают решения: переместить entity в главный пакет, переименовать пакет или явно задать сканирование через @EntityScan (напр. @EntityScan("com.java67.entity")).
Подробности: http://www.java67.com/2023/04/how-to-fix-not-managed-type-exception.html
#en
@a_cup_of_java | Другие наши каналы
8 452
Топ-аннотаций Spring: что важно знать
В статье на Java67 — обзор ключевых аннотаций Spring, что они делают и почему их стоит изучить Java‑разработчику. Упомянуты также бесплатные курсы и ресурсы для практики.
Подробности: http://www.java67.com/2018/11/top-10-spring-framework-annotations-for-java-developers.html
#en
@a_cup_of_java | Другие наши каналы
8 452
Совместимость в Java: что может пойти не так?
Совместимость — фундаментальная характеристика платформы Java, обеспечивающая стабильную работу программ при эволюции JDK. Однако понятие «совместимость» многогранно: исходный код, бинарные файлы и поведение программ оцениваются по разным стандартам.
В новом переводе от команды Spring АйО разберем три ключевых категории совместимости: на уровне исходного кода, бинарную и поведенческую, а также рассмотрим нюансы сериализуемой и миграционной совместимости.
Читать: https://habr.com/ru/companies/spring_aio/articles/956824/?utm_campaign=956824
@a_cup_of_java | Другие наши каналы
8 452
Тупик
Мат рождается в душе. Больше всего его рождается когда сталкиваешься с чем-то похожим на <подставь. Инструмент с прекрасными целями и задачами постепенно превращается во все больший и больший кусок г.. в котором приходиться копаться. Ощущаешь себя жужжащей мухой, летающей вокруг по необходимости.
Когда трава была зеленее, когда мы сильно боролись за каждый такт процессора, тратя на это наше время, которое мы тогда не очень ценили, все было в какой-то мере проще.
Если тебе нужна была фича, ты ее делал сам.
Или ты искал уже реализованную фичу, и прикручивал к своему коду.
Больше времени уходило на поиск. Не всегда можно было найти.
Сейчас все поменялось.
Подключение новой фичи чаще всего присоединяет к твоему коду 100500 дополнительных фиговин, которые мало того, что чаще не нужны, но и которые мешают запустить твой код.
Они подключаются по дефолту сами, и ты ищешь как их отключить. Но так как библиотеки постоянно меняются, это не так просто. Сколько раз подключал <подставь, ещё не разу не было одинакового кода. Постоянно меняются названия методов, их параметры, типы.
Раньше было просто. Возьмем для примера <подставь. Ты подключал и говорил ему, что нужно делать в первом случае, что во втором, что в третьем.
Сейчас же так просто не работает. Все стало сложнее. Ты указываешь доступный всем метод по старинке, но не тут то было. Клиенты получают в ответ фигу. Ты думаешь, что поменялся синтаксис, ищешь новые незадеприкейчаные методы (которых по количеству уже меньше, чем задеприкейчаных), но все равно клиенты получают фигу. Один и тот же код разрешает пользователям работать с одними запросами, но не разрешает с другими. Уверен, что это как-то объясняется. Просто подключается ещё куча бинов по дефолту, с доп параметрами по дефолту, и т.д. Идеология упрощения.
Но то, что прямо игнорируется команда разработчика, это уже перебор.
Читать: https://habr.com/ru/articles/958462/?utm_campaign=958462
@a_cup_of_java | Другие наши каналы
8 452
JUnit 6: Java 17, Kotlin suspend и fail-fast
JUnit 6 вышел: Java 17 минимум, нативная поддержка Kotlin suspend, API CancellationToken и --fail-fast, встроенная поддержка JFR, FastCSV вместо univocity, Vintage депрекейтед. Подробнее — статья InfoQ.
Подробности: https://www.infoq.com/news/2025/10/junit6-java17-kotlin/
#en
@a_cup_of_java | Другие наши каналы
8 452
Что такое ANR и как с ним работать правильно
ANR — это не просто “зависание”, а молчаливый краш, который напрямую бьёт по удержанию пользователей. В статье разбираю, как работает механизм ANR, какие ошибки его вызывают, как анализировать traces.txt, какие библиотеки помогают отслеживать блокировки (ANR-WatchDog, ANR-Spy, Firebase Crashlytics), и как построить процессы, чтобы QA-команда научилась ловить их ещё до релиза.
Читать: https://habr.com/ru/articles/958278/?utm_campaign=958278
@a_cup_of_java | Другие наши каналы
8 452
Обзор Java: OpenJDK, Spring RC, Jakarta EE и крупные релизы
InfoQ: двое новых кандидатов OpenJDK (Vector API, jcmd), первые RC Spring Framework 7.0 и Spring Data 2025.1, Jakarta EE 12 M1, WildFly 38, Testcontainers 2.0, обновления Payara и Micrometer. Читайте статью на InfoQ.
Подробности: https://www.infoq.com/news/2025/10/java-news-roundup-oct13-2025/
#en
@a_cup_of_java | Другие наши каналы
8 452
Кейс из production: Deadlock в асинхронном коде на Java
Недавно наткнулся на коварную проблему, которая отлично демонстрирует важность правильной конфигурации пула потоков при работе с асинхронным программированием. Эта ситуация может возникнуть в любом проекте, где используются вложенные асинхронные операции, и её последствия могут быть катастрофическими для production-системы.
Читать: https://habr.com/ru/articles/958166/?utm_campaign=958166
@a_cup_of_java | Другие наши каналы
8 452
Кейс из production: Deadlock в асинхронном коде на Java
Недавно наткнулся на коварную проблему, которая отлично демонстрирует важность правильной конфигурации пула потоков при работе с асинхронным программированием. Эта ситуация может возникнуть в любом проекте, где используются вложенные асинхронные операции, и её последствия могут быть катастрофическими для production-системы.
Читать: https://habr.com/ru/articles/958166/?utm_campaign=958166
@a_cup_of_java | Другие наши каналы
8 452
Всероссийский ИТ-чемпионат МТС True Tech Champ продлевает регистрацию на алгоритмический трек
Этап продлили до 23:59 Мск 23 октября.
Успей присоединиться к чемпионату, решить задачи и побороться за призовой фонд — 2 750 000 рублей.
Шесть призовых мест:
• 1 000 000 рублей за первое место;
• по 500 000 рублей за два вторых места;
• по 250 000 рублей за три третьих места.
О соревновании:
— Отборочный этап и регистрация до 23 октября. Онлайн. Три задачи. Чтобы их решить, нужны базовые знания теории и языков программирования
— Полуфинал 24 октября — 30 октября. Онлайн. Тебе предстоит решать алгоритмические задачи и работать со структурами данных. Чтобы успешно справиться с заданиями, пригодится опыт решения олимпиад.
— Финал 21 ноября в МТС Live Холл. Офлайн. До 240 лучших участников попадут в офлайн-финал и покажут мастерство лайв-кодинга.
Финал пройдет в формате масштабного ИТ-фестиваля с шоу-битвой роботов, где гостей ждет захватывающая сюжетная линия, кодерские челленджи, на сцене выступят международные и российские ИТ-эксперты, а вечером участников ждет афтепати со звёздными хэдлайнерами.
Регистрация по ссылке.
Это #партнёрский пост
8 452
Java 25: упрощённые исходники
Язык Java развивается. Не так давно вышла очередная версия, в которой, помимо всего прочего, вышло любопытное обновление языка (JEP-512).
Изменения, в язык внесенные, делают его более пригодным и удобным для обучения и написания коротких программ.
В этой статье хочу рассказать о том, как это сделано. Для этого заглянем в компилятор и немного коснемся теории создания языков.
Читать: https://habr.com/ru/companies/axiomjdk/articles/952826/?utm_campaign=952826
@a_cup_of_java | Другие наши каналы
8 452
Что такое ContextLoaderListener в Spring MVC?
В статье объясняют роль ContextLoaderListener: он создаёт root ApplicationContext, загружает сервисные и DAO-бины, работает вместе с DispatcherServlet и может быть настроен через web.xml или Java Config (Servlet 3.0+). Подборка по Spring и Hibernate: курсы, туториалы и вопросы для собеседований
В статье собраны полезные курсы, туториалы и списки интервью‑вопросов по Spring, Spring MVC, Spring Boot и Hibernate — пригодится для подготовки к собеседованию и повышения практических навыков. Обзор: Spring Boot, микросервисы и курсы
Статья собирает практичные гайды, примеры, решения ошибок и подборки курсов по Spring, Spring Boot и микросервисам — полезно Java‑разработчикам, ищущим быстрые практические инструкции.
Подробности: http://www.java67.com/2019/05/contextloaderlistener-in-spring-mvc-10.html
#en
@a_cup_of_java | Другие наши каналы
