@a_cup_of_java
Чашечка Java
Telegram channel @a_cup_of_java: 8.4K subscribers, 624 views per post, score 37
37DAhead of 3 in 10 channels in its category
Category midrange 33–52This channel 37
- 8.4K
- Subscribers
- 624
- Median views over 30 days
- 7.5%
- Views / subscribers over 30 days
- 56
- Posts over 30 days
Data as of October 1, 2026
About Java development and the surrounding JVM ecosystem, for people who write code and track the tools around the language. As of 14 September: 8.4K subscribers — below the category median of 18K, while engagement rate sits right at the category median of 8.4%. Over the past month the author compared what matters more for an AI agent, Go's speed or Java's strict checks with record types and sealed interfaces, explained how klibs.io serves dependency versions through MCP instead of relying on an agent's memory, and covered AWS changing DynamoDB retry defaults starting 1 November 2026. Other posts covered Nebula ArchRules for safely removing deprecated APIs from shared libraries and Solon Cloud, which separates business code from infrastructure changes. The tone is technical, grounded in specific libraries, version numbers, and quotes from developer blogs.
catalog description About the channel, by its author
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: tprg.ru/rules Другие каналы: @tproger_channels
Common questions
- How many subscribers?
- Subscribers: 8.4K. Median views per post: 624. Views per subscriber: 7.5%. Measured on October 1, 2026.
- How often are posts published?
- Posts in the last 30 days: 56 — that is several times a day. Measured on October 1, 2026.
- Does this channel have a Telegram tick?
- No Telegram tick.
- Who runs this channel page in the catalog?
- Nobody yet. If this is your channel, claim the page: you will be able to reply to reviews and see its stats.
Is this your channel?
Claim it — accurate metrics, replies to reviews as the channel, and an owner badge on the page.
Verify ownershipTakes a minute: a post with a code, or the bot as an admin
Your page on tg.place
Know the owner?
Forward them this message — they can verify their rights and collect what has piled up: page statistics and replies to reviews.
8,4608,371
Oct 18,371−1 in a day
Hover the chart or swipe it — we show the day.
| What it is made of | |
|---|---|
| Engagement | 2.8 of 30 |
| Growth quality | 12 of 20 |
| Reactions and forwards | 5.7 of 15 |
| Consistency | 4.8 of 12 |
| Trust | 6.4 of 8 |
| Reviews | not enough datano reviews yet |
Score 37 — from 5 of 6 signals: the rest are not measured yet. Methodology
Latest posts
Posts are in Russian — that is what the channel publishes.
- Как настроить MFA в Spring Security 7 для приложения и отдельных эндпоинтов Spring Security 7, доступный со Spring Boot 4, добавил FactorGrantedAuthority. После входа по паролю пользователь получает FACTOR_PASSWORD, а после одноразового токена из письма — FACTOR_OTT. Доступ открывается, когда собраны все обязательные факторы. Для MFA во всём приложении аннотация @EnableMultiFactorAuthentication связывает фильтры входа и создаёт проверку требуемых факторов. Стандартная форма не умеет задавать их порядок, поэтому для последовательного сценария понадобятся собственные страницы. Чтобы усилить только /admin/**, аннотации передают пустой список факторов, а отдельный AuthorizationManagerFactory назначают этому маршруту. Остальные запросы сохраняют однофакторную проверку. Конфигурация обоих вариантов приведена с кодом.
- Как StructuredTaskScope в JDK 27 отменяет лишнюю работу при сбое Два независимых вызова к сервисам последовательно занимают около двух секунд. Виртуальные потоки с
Futureсокращают успешный запуск примерно до секунды, но при сбое одного вызова через 200 мс второй продолжает работу. ЗакрытиеExecutorServiceждёт его завершения, хотя результат уже не нужен.StructuredTaskScopeобъединяет подзадачи: ошибка одной прерывает соседнюю, аjoin()сообщает о сбое всей группы. В примере метод возвращается примерно через 200 мс вместо полной секунды. Сравнение трёх реализаций учитывает седьмую предварительную версию API в JDK 27 и проверяемое исключениеExecutionException. Для запуска нужен--enable-preview. Ограничение сохраняется: задача должна реагировать на прерывание, а закрытие области ждёт завершения всех подзадач. - Как подтвердить взаимную блокировку по дампу потоков Java Если JVM перестала выполнять работу, снимите несколько дампов с интервалом в несколько секунд:
jcmd <pid> Thread.print -lилиjstack -l <pid>. Найдите потоки в состоянииBLOCKED. Сопоставьте монитор послеwaiting to lockс потоком, который держит его послеlocked. Если цепочка вернулась к первому потоку, взаимная блокировка подтверждена.WAITINGиTIMED_WAITINGсами по себе нормальны. Практический разбор дампов показывает, как сверить стеки с метриками. Исправлять нужно порядок захвата блокировок: увеличение пула цикл не разорвёт. - Spring Boot 4: настраиваем экспорт логов, метрик и трассировок через OpenTelemetry В Spring Boot 4 появился собственный OpenTelemetry starter. Spring рекомендует его вместо Java-агента и стороннего starter с альфа-зависимостями. Для логов нужны Logback appender,
logback-spring.xmlи вызовinstall(). В 4.0.0 экспорт без Actuator не работал, обе ошибки исправили в 4.0.1. Метрики потребуют Micrometer и дополнительных bean-компонентов, для трассировок достаточно адреса экспорта. Полная схема настройки включает Docker Compose с Grafana LGTM. Проверьте адрес логов: нужен/v1/logs, не/v1/traces. - DAGP 3.5.0 проверяет бинарную совместимость дубликатов классов в Gradle Если два JAR содержат класс с одинаковым полным именем, JVM загрузит первый найденный в пути классов. Поэтому порядок зависимостей может решить, какая реализация попадёт в работу. На этом же поведении строятся атаки Maven-Hijack. Dependency Analysis Gradle Plugin запускает проверку через
buildHealth. При обнаружении дубликатов DAGP 3.5.0 сравнивает поля и методы классов, включая типы, параметры и модификаторы. Несовместимые сигнатуры помогают найти конфликт версий, ошибочную перепаковку библиотеки или подозрительную подмену класса. Разбор проверки Gradle-сборки предлагает предупреждать о дубликатах либо останавливать сборку. Ограничение остаётся: вредоносная реализация с прежними сигнатурами пройдёт такую проверку, поэтому DAGP служит ранним сигналом, а не полной защитой. - Как защитить REST API в Spring Boot от несовместимых изменений В Spring Boot обновление Jackson, смена конфигурации или новая функция могут незаметно нарушить договорённости с клиентами REST API. Контрактные тесты фиксируют ожидаемые запросы и ответы, чтобы поймать расхождение до развёртывания. Для проверки со стороны провайдера OpenAPI-Diff сравнивает текущую спецификацию со снимком. Метод
isCompatible(), в отличие от строгогоisUnchanged(), не отклоняет совместимое добавление новых эндпоинтов. Spring Cloud Contract хранит контракты в YAML, а Maven-плагин генерирует проверочные тесты и WireMock-заглушки для клиентов. Если команда контролирует потребителей API, можно передать им ведение контракта через Pact. Практический разбор трёх подходов помогает выбрать схему и настроить проверки совместимости. - JDK 26: когда автовекторизации JIT мало и нужен Vector API JIT превращает циклы Java в SIMD-инструкции, обрабатывающие несколько чисел за раз. На JDK 26.0.2.1 и Apple M4 Max суммирование миллиона элементов ускорилось примерно вдвое. Вклад оптимизации можно проверить JMH-прогоном с
-XX:-UseSuperWord. Vector API с одним аккумулятором дал те же 113 мкс на операцию, а четыре независимых сократили время до 35 мкс: процессору не пришлось ждать предыдущее сложение. Сравнение JMH-бенчмарков показывает цену ускорения: Vector API остаётся инкубационным, код усложняется, а выигрыш зависит от CPU. Бенчмарк стоит прогнать на production-сервере. - JDK 25: как передавать контекст запроса через ScopedValue В JDK 25 ScopedValue стал постоянным API для идентификаторов запросов, данных пользователя и трассировки. Значение привязывается через
where(...).run(...), читается черезget()во всей цепочке вызовов и автоматически исчезает после выхода из блока. Это убирает сквозные параметры и ручнойThreadLocal.remove(). Во вложенной области значение можно временно перепривязать. После её завершения внешняя привязка восстановится, поэтому время жизни контекста видно прямо в коде. Практический пример с RequestContext показывает проверку черезisBound()до и после блока. Для миграции ScopedValue подходит читаемому контексту с ограниченным временем жизни. ThreadLocal остаётся для изменяемого состояния потока, прежних версий Java и совместимости с существующими API. - Spring Boot 3.5 и 4: подключаем Fory JSON к MVC и WebFlux Spring Fory 1.1.0 требует Java 17 или новее. Для Boot 4 предназначен
fory-json-spring-boot-starter, для Boot 3.5 —fory-json-spring-boot3-starter. Стартер выбирает интеграцию для MVC или WebFlux, а контроллеры сохраняют привычные@RequestBody,MonoиFlux. При миграции настройки придётся перенести явно: аннотации Jackson и параметрыspring.jackson.*не управляют Fory. Стоит отдельно проверить имена полей и весь JSON-контракт. Ограничение входных данных в MVC относится ко всему телу запроса, а при потоковом NDJSON в WebFlux — к каждому значению вFlux. Руководство по интеграции показывает API заказов, настройку преобразования JSON и вариант без Spring Boot. Бенчмарки сериализации не гарантируют такой же прирост HTTP-производительности: результат нужно измерять на своём приложении. - Как убрать временные MemorySegment при доступе к нативной памяти в Java В горячем цикле обёртка MemorySegment для каждого нативного адреса создаёт короткоживущие объекты и нагружает GC. Разбор арифметики указателей через FFM API показывает другой путь: один глобальный сегмент начинается с адреса 0 и расширяется через
reinterpretдоLong.MAX_VALUE. VarHandle, построенный из описания структуры, получает этот сегмент как базу, а числовой адрес как смещение. Новая обёртка на каждом проходе не нужна. В авторском JMH-тесте такой вариант дал примерно 21 млн против 1,49 млн операций в миллисекунду. Цена ускорения: глобальный сегмент не проверит, существует ли память по адресу и не была ли она освобождена. Для горячего участка сначала измерьте аллокации и производительность собственным JMH-тестом, а время жизни памяти контролируйте отдельно.
The channel in numbers
- Created
- August 24, 2021
- Photos
- 3.9K
- Videos
- 13
- Files
- 56
- Links
- 6.4K
Telegram data as of October 1, 2026
Contacts
- Ads
- @tproger_sales_bot
From the channel description
Reviews
Leave a review
No reviews yet. Yours would be the first.