Чашечка Java
9.18K subscribers
3.72K photos
13 videos
55 files
5.88K links
Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Download Telegram
Maven Central ограничивает пропускную способность: что важно знать в 2025 году

Команда Spring АйО подготовила статью про Rate Limit в Maven Central — один из тех инфраструктурных проектов, без которых современная JVM-экосистема уже немыслима. Здесь живёт подавляющее большинство библиотек и инструментов для Java, Kotlin, Scala и Android. После закрытия JCenter в 2021 году он окончательно стал де-факто центральным публичным репозиторием, куда в итоге попадает практически каждая новая библиотека.


Читать: https://habr.com/ru/companies/spring_aio/articles/936818/?utm_campaign=936818

@a_cup_of_java | Другие наши каналы
Безопасность приложений: инструменты и практики для Java-разработчиков

Тема безопасной разработки программного обеспечения интересует всё большее количество разработчиков и руководителей. Дополнительным стимулом стал вышедший в конце 2024 года обновлённый ГОСТ Р 56939, в котором описано 25 процессов (мер) для построения безопасной разработки. Это хороший список, но что он означает на практике, например, для Java-разработчиков? Поговорим о сути некоторых процессов и инструментарии.

Статья является переработкой совместного вебинара компаний ООО "ПВС" и АО "АКСИОМ". Текстовый вариант содержит дополнительные ссылки, а некоторые моменты рассмотрены более подробно. Полную запись вебинара доступна здесь: "Безопасность приложений: инструменты и практики для Java-разработчиков".

Статья построена так же, как и вебинар: первую часть подготовил Андрей Карпов, затем слово передаётся Алексею Захарову (@AlexZ0).


Читать: https://habr.com/ru/companies/axiomjdk/articles/936864/?utm_campaign=936864

@a_cup_of_java | Другие наши каналы
Гайд по использованию Spring GraphQL

Привет, Хабр!

Меня зовут Дмитрий, я бэкенд-разработчик в SENSE и последние 10 лет пишу серверную часть на Java. Эта статья – продолжение первой части гайда по Spring GraphQL, где мы с нуля подняли проект и подключили GraphQL к Spring Boot.

Теперь углубимся в разработку полноценного API: создадим более сложную схему с вложенными типами и связями между ними, реализуем запросы с фильтрацией, добавим мутации для изменения данных и затронем важные аспекты производительности.

Поехали!


Читать: https://habr.com/ru/companies/it_sense/articles/937128/?utm_campaign=937128

@a_cup_of_java | Другие наши каналы
Как мы сделали AI-агента и пользуемся им на практике

Привет, Хабр! В последнем обновлении Explyt мы добавили AI-агента для написания кода. В этой статье расскажем, что он умеет и как мы сами его используем.

Пару месяцев назад в нашем плагине не было AI‑агента, а был только ассистент для генерации тестов. И пока агент не появился, в работе мы использовали другие известные плагины. Лично мне очень нравился Copilot, из‑за своего минималистичного интерфейса и контроля за контекстом. Однако фичи копайлота в первую очередь доезжали до VSCode, а пользователю IntelliJ IDEA приходилось дожидаться их месяцами. Поэтому для прототипирования и скаффолдинга, написания бойлерплейтного кода с помощью AI‑агентов мне приходилось переключаться между любимой средой разработки и IntelliJ, что было несколько неудобно.

С появлением своего AI‑агента пошло легче: можно было нажаловаться тимлиду Серёже, который затем осознанно и вдумчиво хакал очередной юзкейс. Со временем отладили настолько, что использовать внешние инструменты не приходится, свой стал работать достаточно хорошо. Дальше покажем, что он может, расскажем о приятных фишках, которые мы сделали для себя, чуть‑чуть о реальном опыте работы с ассистентом.


Читать: https://habr.com/ru/companies/explyt/articles/936992/?utm_campaign=936992

@a_cup_of_java | Другие наши каналы
1
Крипта без комиссий и сеть Вавилон

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


Читать: https://habr.com/ru/articles/937176/?utm_campaign=937176

@a_cup_of_java | Другие наши каналы
Jakarta Data. Что это означает для Java-сообщества

Большинство enterprise-приложений работают с БД в том или ином виде. Чаще всего в качестве БД выступает реляционная DBMS, например, PostgreSQL или Oracle. Относительно часто для доступа к данным используют Hibernate. Ранее он предлагал только одну спецификацию — JPA (Java Persistence API), она же Jakarta. Но теперь Hibernate реализует ещё и Jakarta Data.

Jakarta Data — это новая спецификация под зонтиком проекта Jakarta EE (как и JPA), которая упрощает интеграцию данных в корпоративных Java-приложениях. Обе эти спецификации разрабатывает Eclipse Foundation, и в частности Gavin King, создатель Hibernate.

Большинство разработчиков привыкли работать с Hibernate именно через Spring Data JPA. Изначально, когда только обсуждали спецификацию Jakarta Data, Spring Data (не обязательно JPA) была одним из тех проектов, который, в перспективе, мог бы реализовать спецификацию Jakarta Data. Но этого не произошло, и, несмотря на то, что изначально команда Spring Data была вовлечена в процесс создания спецификации, они отказались от идеи реализовывать Jakarta Data, и та стала развиваться самостоятельно. Сегодня Jakarta Data применяют в Hibernate, Open Liberty и ряде более мелких решений. Как же так вышло?

Меня зовут Михаил Поливаха, я практикующий инженер и активный коммитер Spring Data. В этой статье я расскажу об особенностях Jakarta Data, как она появилась и чем отличается от конкурентных решений. Я также расскажу, что помешало команде Spring Data реализовать Jakarta Data, и что же нас ждёт дальше.


Читать: https://habr.com/ru/companies/sberbank/articles/936912/?utm_campaign=936912

@a_cup_of_java | Другие наши каналы
2
Как интегрировать ИИ в Java-приложения?
Статья рассказывает о том, как с помощью LangChain4j и Quarkus можно легко внедрять ИИ-функции, создавать чат-ботов и управлять диалогами. Java остается надежной платформой для создания продвинутых AI-решений без изучения новых языков. Создание AI-ассистента для подбора космических кораблей на Java

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

Подробности: https://www.infoq.com/articles/infusing-ai-java/

#en

@a_cup_of_java | Другие наши каналы
Разрабатываем spring-boot Starter адаптера EGTS протокола для передачи телеметрии курьеров в РНИС

Привет! Меня зовут Игнат. В этой статье я расскажу про разработку адаптера для работы с EGTS-протоколом (Era Glonass Telematics Standard), который можно использовать для передачии телеметрии курьеров из курьерских служб в РНИС (РНИС - государственная информационная система «Единая региональная навигационно-информационная система города Москвы»). Код написан на Kotlin и подходит для использования в Java и Kotlin приложениях. Простота подключения модуля привела к идее вынести проект в опенсорс, чтобы его могли использовать курьерские службы с бэкендом на jvm. Поехали!


Читать: https://habr.com/ru/articles/937038/?utm_campaign=937038

@a_cup_of_java | Другие наши каналы
👎1
Что я знаю про онлайн редактирование

Привет! Меня зовут Сергей и я техлид. Причем уже долгое время. За время своей работы я успел поработать с разными решениями, надо разными проектами и столкнуться с разными задачами. Проекты я всегда старался выбирать свежие. Когда надо построить большую и сложную систему с нуля.

Идея этой статьи пришла ко мне год назад. При посещении Highload я был у стенда одной большой компании, которая очень любит алгоритмы. На нем предлагалась решить архитектурную задачу за мерч. Когда дошла очередь до меня, мне выпала задача - построить онлайн редактор с нуля. Это отличный вариант! Как раз такое мне уже приходилось проектировать. В процессе решения, автор задачи сказал, что я усложняю и вообще онлайн редктор - это гораздо проще. После разбора нескольких корнер кейсов, он согласился, что это всего лишь первый взгляд. Далее уже достаточно долго мы обсуждали а как вообще можно построить онлайн редактор. В тот момент и появилась идея поделиться своим опытом публично, но вот только сейчас дошли руки. Итак, приступим.


Читать: https://habr.com/ru/articles/937668/?utm_campaign=937668

@a_cup_of_java | Другие наши каналы
Когда Structure Block уже не справляется: Продвинутая генерация огромных строений в Minecraft

Стандартный Jigsaw-метод хорош для деревень, но пасует перед гигантскими .nbt-файлами, вызывая лаги и вылеты. Столкнувшись с этим, я отказался от JSON-конфигураций и написал свой класс Structure. В статье разберу, как с помощью чистого Java-кода заставить Forge генерировать огромные строения и не наступить на мои грабли с mods.toml.


Читать: https://habr.com/ru/articles/937976/?utm_campaign=937976

@a_cup_of_java | Другие наши каналы
Публикация maven-артефактов в GitHub репозитории

Уже как три года я работаю над проектом со стеком Kotlin, Spring Boot, Maven. Все начиналось как небольшая учебная практика в вузе на коленке за пару недель и разрослось в приличную систему, которая уже использовалась по всей России.

В связи с ростом проекта, монорепозитория стало мало и появилась необходимость часть логики выделять в отдельные репозитории. Вот здесь и возникает вопрос: как управлять этими зависимостями?


Читать: https://habr.com/ru/articles/938008/?utm_campaign=938008

@a_cup_of_java | Другие наши каналы
Java обновления августа 2025: вышли новые версии Spring Framework 7.0, Spring Data 2025.1, Open Liberty 25.0, Hibernate Reactive 4.1, Quarkus 3.26 и Gradle 9.1 с новыми функциями, улучшениями и исправлениями уязвимостей. Подробности в релизах.

Подробности: https://www.infoq.com/news/2025/08/java-news-roundup-aug11-2025/

#en

@a_cup_of_java | Другие наши каналы
Как заменить GitHub Copilot на полностью офлайн‑Continue Plugin

В этом посте я покажу, как использовать Continue Plugin вместо GitHub Copilot, подключив к нему собственную локальную модель LLM без доступа к интернету. Такой подход обеспечивает максимальную конфиденциальность: ни IDE, ни LM Studio не имеют возможности передавать ваши файлы в облако.

Никакой сети – всё работает только в вашем компьютере.


Читать: https://habr.com/ru/articles/938036/?utm_campaign=938036

@a_cup_of_java | Другие наши каналы
Парсинг на Java. От основ до парсинга Яндекс Карт

Сегодня я рассмотрю основы парсинга на Java, используя как пример Яндекс Карты.

В этой статье мы рассмотрим, что такое HTTP и какие бывают методы запроса, как работать с HttpClient в Java 11+, как отправлять GET и POST-запросы, как обрабатывать HTTP-ответы и извлекать данные, и как всё это можно использовать для парсинга данных с внешнего сервера на примере Яндекс Карт.


Читать: https://habr.com/ru/companies/amvera/articles/937894/?utm_campaign=937894

@a_cup_of_java | Другие наши каналы
GPT-4o: последний взгляд

Это вторая часть цикла «Исследование возможностей ИИ писать код». И она особенная: GPT-4o, о котором пойдёт речь, уже снимали с полок, а затем вернули под давлением жалоб пользователей, но это лишь временная передышка. Модель официально заменена GPT-5 и в любой момент она снова может исчезнуть. Поэтому то, что вы читаете, это скорее исторический снимок работы с устаревшей моделью.


Читать: https://habr.com/ru/articles/938022/?utm_campaign=938022

@a_cup_of_java | Другие наши каналы
Spring Boot + Python: от эксперимента до open-source

Как исполнять Python внутри Spring Boot?

Я прошёл путь от сырых AOP-костылей до production-ready библиотеки с REST, gRPC и безопасным исполнением скриптов. В статье: опыт, архитектура и базовые примеры использования.


Читать: https://habr.com/ru/articles/938126/?utm_campaign=938126

@a_cup_of_java | Другие наши каналы
👍2
Как мы затащили jOOQ в высоконагруженный проект с Postgres

Привет, Хабр. Меня зовут Михаил Тимошкин. Я тимлид в команде Тематических каналов в Дзене.

Одна из классических головных болей при создании сервиса — синхронизация кода приложения со схемой БД. Есть много инструментов для управления изменениями схемы базы данных, таких как Liquibase или Flyway, для которых существуют плагины с кодогенерацией. Но что, если на проекте ничего подобного нет? Хорошая новость в том, что даже в такой ситуации можно найти эффективное решение! В этом мы убедились на собственном опыте при переходе с Hibernate на jOOQ.

В этой статье я расскажу, с какой проблемой мы столкнулись, какие решения рассматривали и что получили в итоге.


Читать: https://habr.com/ru/companies/vk/articles/934620/?utm_campaign=934620

@a_cup_of_java | Другие наши каналы
Java Agent как инструмент обхода лицензий: этичный анализ и защита

Обычно Java-агенты используются для сбора телеметрии, логирования, профилирования, каких-то ультрабыстрых хотфиксов и прочих скучных вещей.

Но сегодня мы исследуем приложение Java-агент, которое модифицирует код другого Java-приложения “на лету” и создано для обхода лицензионных ограничений. Называть его мы будем “агент”, “вредоносный агент” и т. п.

Меня зовут Сергей, тимлид бэкэнд команды Cluster Manager ГК GlowByte.

Код в нашем примере будет максимально обезличен.

Эта тема рассматривается исключительно в целях исследования вопросов безопасности приложений и этичного использования инструментов изменения кода во время компиляции.

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


Читать: https://habr.com/ru/companies/glowbyte/articles/938416/?utm_campaign=938416

@a_cup_of_java | Другие наши каналы
Работа над ошибками

Достаточно большой период времени занимался технической поддержкой СУБД Oracle. Накопилось некоторое количество историй и заметок на полях по этому поводу, не могу не поделиться ими с вами. В общем – садимся по удобнее, берем попкорн, чашку горячего чая или кофе.. Дело было так.


Читать: https://habr.com/ru/articles/938502/?utm_campaign=938502

@a_cup_of_java | Другие наши каналы
Гайд по использованию Spring GraphQL. Часть 3

Привет, Хабр!

Меня зовут Дмитрий, я бэкенд-разработчик в SENSE и последние 10 лет пишу серверную часть на Java. Эта статья – продолжение серии гайдов по Spring GraphQL, где в первой части мы с нуля подняли проект и подключили GraphQL к Spring Boot, а во второй разобрались с SchemaMapping, DataLoader и реализацией запросов посложнее.

Сегодня двигаемся дальше: разберём валидацию данных, работу с заголовками (headers), обработку ошибок, подключение кастомных скаляров и директив. А ещё посмотрим, как работать с интерфейсами и union-типами, и напишем клиент для GraphQL-сервиса.

Поехали!


Читать: https://habr.com/ru/companies/it_sense/articles/938600/?utm_campaign=938600

@a_cup_of_java | Другие наши каналы