Тред-дампы и Project Loom (виртуальные потоки)
С появлением виртуальных потоков в Java благодаря Project Loom, параллельное программирование стало проще, а производительность — выше. Однако за этой простотой кроются новые вызовы для инструментов отладки и анализа. Как читать тред-дампы, если их теперь тысячи — или миллионы? Какие средства реально помогают найти взаимные блокировки и аномалии в асинхронном коде? И как IntelliJ IDEA справляется с этим в новых реалиях? Рассмотрим в новом переводе от команды Spring АйО.
Читать: https://habr.com/ru/companies/spring_aio/articles/980566/?utm_campaign=980566
@a_cup_of_java | Другие наши каналы
С появлением виртуальных потоков в Java благодаря Project Loom, параллельное программирование стало проще, а производительность — выше. Однако за этой простотой кроются новые вызовы для инструментов отладки и анализа. Как читать тред-дампы, если их теперь тысячи — или миллионы? Какие средства реально помогают найти взаимные блокировки и аномалии в асинхронном коде? И как IntelliJ IDEA справляется с этим в новых реалиях? Рассмотрим в новом переводе от команды Spring АйО.
Читать: https://habr.com/ru/companies/spring_aio/articles/980566/?utm_campaign=980566
@a_cup_of_java | Другие наши каналы
Почему я перешел на Dagger Components (вместо Dagger Android)
Всем привет, меня зовут Анатолий Спитченко, я Android-разработчик в ПСБ. В этой статье расскажу про свои эксперименты с Dagger. Наткнувшись в проекте на огромный модуль Application (11,5 Мб), я стал искать альтернативы обертке Dagger Android. Поэкспериментировал с продвигаемым Google Dagger Hilt, а также с более старым подходом — Dagger Components. Последний, как ни странно, позволяет немного сократить Application и в целом имеет больше плюсов, чем минусов. Подробности под катом.
Читать: https://habr.com/ru/companies/psb/articles/979988/?utm_campaign=979988
@a_cup_of_java | Другие наши каналы
Всем привет, меня зовут Анатолий Спитченко, я Android-разработчик в ПСБ. В этой статье расскажу про свои эксперименты с Dagger. Наткнувшись в проекте на огромный модуль Application (11,5 Мб), я стал искать альтернативы обертке Dagger Android. Поэкспериментировал с продвигаемым Google Dagger Hilt, а также с более старым подходом — Dagger Components. Последний, как ни странно, позволяет немного сократить Application и в целом имеет больше плюсов, чем минусов. Подробности под катом.
Читать: https://habr.com/ru/companies/psb/articles/979988/?utm_campaign=979988
@a_cup_of_java | Другие наши каналы
Новый open source Java коннектор для Tarantool: практика с примерами кода
VK Tech открывает исходный код коннектора Tarantool Java EE и переименовывает его в Tarantool Java SDK. Дистрибутив станет доступен в Maven Central, что упростит интеграцию с Java-приложениями в корпоративных средах.
Меня зовут Артём Дубинин, я старший программист в VK Tech. Я разрабатываю коннекторы к Tarantool, а также участвую в разработке различных продуктов в VK Tech. Однажды я понял, что материала про совместную работу Java и Tarantool очень мало и из-за этого может казаться, что совмещать их сложно. Но на самом деле это не так — и иногда альтернативы Tarantool могут быть даже сложнее во взаимодействии. Поэтому я и решил написать эту статью.
Цель статьи — показать через код, что Tarantool реально совместить с Java без больших полотен кода, а итеративно с небольшими сниппетами (не считая java импортов и xml 😄). Мы будем использовать такие, чтобы каждый мог попробовать провести у себя на компьютере эти эксперименты и понять, что Tarantool легок в использовании.
Читать: https://habr.com/ru/companies/vktech/articles/980380/?utm_campaign=980380
@a_cup_of_java | Другие наши каналы
VK Tech открывает исходный код коннектора Tarantool Java EE и переименовывает его в Tarantool Java SDK. Дистрибутив станет доступен в Maven Central, что упростит интеграцию с Java-приложениями в корпоративных средах.
Меня зовут Артём Дубинин, я старший программист в VK Tech. Я разрабатываю коннекторы к Tarantool, а также участвую в разработке различных продуктов в VK Tech. Однажды я понял, что материала про совместную работу Java и Tarantool очень мало и из-за этого может казаться, что совмещать их сложно. Но на самом деле это не так — и иногда альтернативы Tarantool могут быть даже сложнее во взаимодействии. Поэтому я и решил написать эту статью.
Цель статьи — показать через код, что Tarantool реально совместить с Java без больших полотен кода, а итеративно с небольшими сниппетами (не считая java импортов и xml 😄). Мы будем использовать такие, чтобы каждый мог попробовать провести у себя на компьютере эти эксперименты и понять, что Tarantool легок в использовании.
Читать: https://habr.com/ru/companies/vktech/articles/980380/?utm_campaign=980380
@a_cup_of_java | Другие наши каналы
❤1
Как я мигрировал COBOL-код мейнфрейма на Java: разные подходы и почему ANTLR — лучший выбор
Когда я работал в одной зарубежной компании, мне поставили задачу мигрировать COBOL‑систему расчета инвойсов с мейнфрейма на Java. Она звучала довольно просто: «Нужно переписать старый COBOL‑код на Java, чтобы система жила дальше».
Я тогда подумал, что это будет очередная рутина — взять дремучее легаси, аккуратно переложить его на современную версию Java, возможно, чуть подчистить архитектуру, внести небольшие косметические правки и закрыть задачу. В голове уже созрел рабочий план: пара итераций по автогенерации кода с помощью нейронки и готово. В общем, казалось, что ничего особенного.
Читать: https://habr.com/ru/articles/980846/?utm_campaign=980846
@a_cup_of_java | Другие наши каналы
Когда я работал в одной зарубежной компании, мне поставили задачу мигрировать COBOL‑систему расчета инвойсов с мейнфрейма на Java. Она звучала довольно просто: «Нужно переписать старый COBOL‑код на Java, чтобы система жила дальше».
Я тогда подумал, что это будет очередная рутина — взять дремучее легаси, аккуратно переложить его на современную версию Java, возможно, чуть подчистить архитектуру, внести небольшие косметические правки и закрыть задачу. В голове уже созрел рабочий план: пара итераций по автогенерации кода с помощью нейронки и готово. В общем, казалось, что ничего особенного.
Читать: https://habr.com/ru/articles/980846/?utm_campaign=980846
@a_cup_of_java | Другие наши каналы
10 самых интересных ошибок в Java проектах за 2025 год
2025 год подходит к концу. Minecraft моды, каталонский язык и неочевидные взаимодействия с тернарным оператором — с чем только не успел познакомиться наш анализатор. А значит, самое время вам об этом рассказать — представляем топ-10 ошибок, которые нашёл анализатор PVS-Studio в Open Source проектах за 2025 год.
Читать: https://habr.com/ru/companies/pvs-studio/articles/980856/?utm_campaign=980856
@a_cup_of_java | Другие наши каналы
2025 год подходит к концу. Minecraft моды, каталонский язык и неочевидные взаимодействия с тернарным оператором — с чем только не успел познакомиться наш анализатор. А значит, самое время вам об этом рассказать — представляем топ-10 ошибок, которые нашёл анализатор PVS-Studio в Open Source проектах за 2025 год.
Читать: https://habr.com/ru/companies/pvs-studio/articles/980856/?utm_campaign=980856
@a_cup_of_java | Другие наши каналы
Hidden классы в Java. Что скрывают Lambda выражения
С переходом Java на более безопасные и стандартизированные подходы к динамической генерации классов, скрытые (hidden) классы стали ключевым механизмом замены устаревшего
Они решают проблемы доступности, управления жизненным циклом и контроля доступа, особенно актуальные для разработчиков фреймворков и языков на JVM. Хотя скрытые классы пока не полностью заменяют функциональность
Подробнее - в новом переводе от команды Spring АйО.
Читать: https://habr.com/ru/companies/spring_aio/articles/980928/?utm_campaign=980928
@a_cup_of_java | Другие наши каналы
С переходом Java на более безопасные и стандартизированные подходы к динамической генерации классов, скрытые (hidden) классы стали ключевым механизмом замены устаревшего
Unsafe::defineAnonymousClass. Они решают проблемы доступности, управления жизненным циклом и контроля доступа, особенно актуальные для разработчиков фреймворков и языков на JVM. Хотя скрытые классы пока не полностью заменяют функциональность
Unsafe, они лежат в основе ряда важных механизмов, такие как, например, реализация лямбд в JDK.Подробнее - в новом переводе от команды Spring АйО.
Читать: https://habr.com/ru/companies/spring_aio/articles/980928/?utm_campaign=980928
@a_cup_of_java | Другие наши каналы
PostgreSQL. Интервальный тип данных. Интеграция с Spring Data JPA
В своей практике мы можем сталкиваться с хранением и поиском информации задаваемой в интревальном формате. Например: срок действия акций, тарифы на доставку и прочее. В статье мы подружим Spring JPA и Range Types.
Читать: https://habr.com/ru/articles/981246/?utm_campaign=981246
@a_cup_of_java | Другие наши каналы
В своей практике мы можем сталкиваться с хранением и поиском информации задаваемой в интревальном формате. Например: срок действия акций, тарифы на доставку и прочее. В статье мы подружим Spring JPA и Range Types.
Читать: https://habr.com/ru/articles/981246/?utm_campaign=981246
@a_cup_of_java | Другие наши каналы
Очарованные Hibernate: проблемы, которые ведут разработчика странствовать по production
Hibernate часто работает как надо ровно до того момента, пока не приходит настоящая нагрузка. И тогда выясняется, что безобидные на вид решения отключают batching, ломают пагинацию, умножают число запросов и даже незаметно открывают дополнительные транзакции — ровно там, где вы рассчитывали на один аккуратный запрос в рамках одного unit of work.
В этой статье мы постарались собрать добрую дюжину самых неочевидных и при этом действительно продакшн-критичных ошибок работы с Hibernate: как они проявляются в логах и метриках, почему возникают на уровне механики ORM, и какие предохранители помогут поймать их до релиза. Будет практично, предметно и с несколькими моментами, после которых захочется пересмотреть пару любимых паттернов в вашем проекте.
поехали ...
Читать: https://habr.com/ru/articles/981386/?utm_campaign=981386
@a_cup_of_java | Другие наши каналы
Hibernate часто работает как надо ровно до того момента, пока не приходит настоящая нагрузка. И тогда выясняется, что безобидные на вид решения отключают batching, ломают пагинацию, умножают число запросов и даже незаметно открывают дополнительные транзакции — ровно там, где вы рассчитывали на один аккуратный запрос в рамках одного unit of work.
В этой статье мы постарались собрать добрую дюжину самых неочевидных и при этом действительно продакшн-критичных ошибок работы с Hibernate: как они проявляются в логах и метриках, почему возникают на уровне механики ORM, и какие предохранители помогут поймать их до релиза. Будет практично, предметно и с несколькими моментами, после которых захочется пересмотреть пару любимых паттернов в вашем проекте.
поехали ...
Читать: https://habr.com/ru/articles/981386/?utm_campaign=981386
@a_cup_of_java | Другие наши каналы
Java-дайджест: Spring Vault, LangChain4j и Gradle 9.3 RC
Краткий обзор по материалу InfoQ: Spring Vault вводит VaultClient/ReactiveVaultClient; LangChain4j 1.10 добавляет мониторинг агентов и обнаружение моделей; Seed4J 2.2 поддерживает Spring Boot 4; патчи для Micronaut, Quarkus, Infinispan.
Подробности: https://www.infoq.com/news/2025/12/java-news-roundup-dec22-2025/
#en
@a_cup_of_java | Другие наши каналы
Краткий обзор по материалу InfoQ: Spring Vault вводит VaultClient/ReactiveVaultClient; LangChain4j 1.10 добавляет мониторинг агентов и обнаружение моделей; Seed4J 2.2 поддерживает Spring Boot 4; патчи для Micronaut, Quarkus, Infinispan.
Подробности: https://www.infoq.com/news/2025/12/java-news-roundup-dec22-2025/
#en
@a_cup_of_java | Другие наши каналы
SRE‑агент на базе ИИ — диагностика за секунды
Bruno Borges (Microsoft) описывает переход от ручного тюнинга SLO к автономным SRE‑агентам на LLM/MCP: OpenTelemetry, USE, jPDM, анализ дампов, интеграция с PagerDuty/Kubernetes и автоматическое устранение инцидентов для снижения MTTR.
Подробности: https://www.infoq.com/presentations/sre-java-agent/
#en
@a_cup_of_java | Другие наши каналы
Bruno Borges (Microsoft) описывает переход от ручного тюнинга SLO к автономным SRE‑агентам на LLM/MCP: OpenTelemetry, USE, jPDM, анализ дампов, интеграция с PagerDuty/Kubernetes и автоматическое устранение инцидентов для снижения MTTR.
Подробности: https://www.infoq.com/presentations/sre-java-agent/
#en
@a_cup_of_java | Другие наши каналы
Плагины с человеческим лицом: истории комьюнити OpenIDE
Мы в OpenIDE хорошо понимаем, что среда разработки — это не просто набор инструментов и функций. Это пространство, в котором разработчик проводит значительную часть своего времени: думает, экспериментирует, ошибается и создаёт новое. Именно поэтому для нас особенно важны открытость, доступность и ощущение живого диалога внутри экосистемы.
IDE - это не только кодовый редактор, вспомогательные инструменты и графические интерфейсы. IDE - это комьюнити. Люди, которые расширяют возможности платформы, находят нестандартные решения, закрывают реальные боли и делятся своим опытом с другими. Именно они превращают среду разработки из продукта в экосистему — живую и дышащую.
И когда до Нового года остаётся совсем немного времени, а сил на сложные технические материалы почти не остаётся, мы решили немного сменить ритм. Вместо глубоких разборов — лёгкое, тёплое и предпраздничное чтение. Так появилась идея серии интервью с участниками нашего комьюнити — людьми, которые создают плагины для OpenIDE.
Мы поговорили с разработчиками, которые вкладывают своё время, знания и идеи в то, чтобы OpenIDE становилась лучше, удобнее и сильнее. У каждого из них — своя история, мотивация и собственный взгляд на то, каким должен быть современный инструмент для разработки.
Это истории не столько про технологии, сколько про идеи, мотивацию и путь от «а что если» до готового инструмента, которым пользуются другие. Формат, который позволяет выдохнуть, вдохновиться и спокойно войти в новый год.
Мы хотим сделать этих людей видимыми. Показать, что за каждым плагином стоит не абстрактная функция, а конкретный человек или команда, которым действительно не всё равно. И, возможно, вдохновить других стать частью этого сообщества - потому что OpenIDE развивается именно так: вместе с людьми и благодаря людям.
Читать: https://habr.com/ru/companies/haulmont/articles/981830/?utm_campaign=981830
@a_cup_of_java | Другие наши каналы
Мы в OpenIDE хорошо понимаем, что среда разработки — это не просто набор инструментов и функций. Это пространство, в котором разработчик проводит значительную часть своего времени: думает, экспериментирует, ошибается и создаёт новое. Именно поэтому для нас особенно важны открытость, доступность и ощущение живого диалога внутри экосистемы.
IDE - это не только кодовый редактор, вспомогательные инструменты и графические интерфейсы. IDE - это комьюнити. Люди, которые расширяют возможности платформы, находят нестандартные решения, закрывают реальные боли и делятся своим опытом с другими. Именно они превращают среду разработки из продукта в экосистему — живую и дышащую.
И когда до Нового года остаётся совсем немного времени, а сил на сложные технические материалы почти не остаётся, мы решили немного сменить ритм. Вместо глубоких разборов — лёгкое, тёплое и предпраздничное чтение. Так появилась идея серии интервью с участниками нашего комьюнити — людьми, которые создают плагины для OpenIDE.
Мы поговорили с разработчиками, которые вкладывают своё время, знания и идеи в то, чтобы OpenIDE становилась лучше, удобнее и сильнее. У каждого из них — своя история, мотивация и собственный взгляд на то, каким должен быть современный инструмент для разработки.
Это истории не столько про технологии, сколько про идеи, мотивацию и путь от «а что если» до готового инструмента, которым пользуются другие. Формат, который позволяет выдохнуть, вдохновиться и спокойно войти в новый год.
Мы хотим сделать этих людей видимыми. Показать, что за каждым плагином стоит не абстрактная функция, а конкретный человек или команда, которым действительно не всё равно. И, возможно, вдохновить других стать частью этого сообщества - потому что OpenIDE развивается именно так: вместе с людьми и благодаря людям.
Читать: https://habr.com/ru/companies/haulmont/articles/981830/?utm_campaign=981830
@a_cup_of_java | Другие наши каналы
Пузырь 2021–2022 годов лопнул: эксперты составили прогноз рынка на 2026 год
После пузыря 2021–2022 ИТ-рынок стабилизируется: в 2026 ждут низкий найм, меньше джунов и рост спроса на сильных инженеров
Читать: «Пузырь 2021–2022 годов лопнул: эксперты составили прогноз рынка на 2026 год»
@a_cup_of_java | Другие наши каналы
После пузыря 2021–2022 ИТ-рынок стабилизируется: в 2026 ждут низкий найм, меньше джунов и рост спроса на сильных инженеров
Читать: «Пузырь 2021–2022 годов лопнул: эксперты составили прогноз рынка на 2026 год»
@a_cup_of_java | Другие наши каналы
💊8
ИИ работает, PR не успевают: риск для SDLC
На QCon AI NY Michael Webster рассказал, что ИИ даёт 3–5× рост скорости разработки на месяц, но затем накапливается технический долг и ревью усложняются. Варианты борьбы: Test Impact Analysis для CI/CD и агент Chunk для валидации кода.
Подробности: https://www.infoq.com/news/2025/12/ai-in-sdlc-webster/
#en
@a_cup_of_java | Другие наши каналы
На QCon AI NY Michael Webster рассказал, что ИИ даёт 3–5× рост скорости разработки на месяц, но затем накапливается технический долг и ревью усложняются. Варианты борьбы: Test Impact Analysis для CI/CD и агент Chunk для валидации кода.
Подробности: https://www.infoq.com/news/2025/12/ai-in-sdlc-webster/
#en
@a_cup_of_java | Другие наши каналы
От Чёрного моря до Невы: история одного комьюнити-тура
Привет, Хабр!
2025 год выдался богатым на конференции и митапы, которые мы успели посетить, а некоторые даже организовать. В этой статье мы совершим небольшой тур по городам и событиям этого года, важным для нашей команды.
Buckle up, folks!
Читать: https://habr.com/ru/companies/axiomjdk/articles/982122/?utm_campaign=982122
@a_cup_of_java | Другие наши каналы
Привет, Хабр!
2025 год выдался богатым на конференции и митапы, которые мы успели посетить, а некоторые даже организовать. В этой статье мы совершим небольшой тур по городам и событиям этого года, важным для нашей команды.
Buckle up, folks!
Читать: https://habr.com/ru/companies/axiomjdk/articles/982122/?utm_campaign=982122
@a_cup_of_java | Другие наши каналы
❤1👾1
StingrayTV Alice: путь от идеи до беты
Привет, это снова Егор. И я сегодня расскажу историю о том, как я решил накодить что-то для своего триколоровского ресивера, и что из этого вышло...
Читать: https://habr.com/ru/articles/982166/?utm_campaign=982166
@a_cup_of_java | Другие наши каналы
Привет, это снова Егор. И я сегодня расскажу историю о том, как я решил накодить что-то для своего триколоровского ресивера, и что из этого вышло...
Читать: https://habr.com/ru/articles/982166/?utm_campaign=982166
@a_cup_of_java | Другие наши каналы
Ускоряем индексацию нодлистов Фидонета при помощи Java Streams и Spring Data JDBC: перебираем нодлисты прямиком с СУБД
Привет, это снова Егор. И да - это снова статья про Фидонет. Так уж сложилось, что именно эта тематика оказался слишком уж популярным на моём Хабре, и неразрывно связана со мной, хотя я всячески пытался "сбежать" от данной тематики.
Однако я решил совместить приятное с полезным - рассказать про недавние мои поправки в NodehistJ, которые значительно ускорит индексацию диффов нодлистов сети Фидонет, а также значительно снизит потребление ОЗУ, за счёт одного из лучших вещей, которая есть в Spring Data JDBC - live streaming данных с СУБД без использования неэффективной пагинации. Данная технология позволяет быстро перебирать нодлисты за считанные минуты, и ускорить индексацию даже на слабых серверах, за счёт прямого перебора данных из СУБД, в live-режиме, без использования неэффективной пагинации, но с использованием самых обычного Java Streams.
Читать: https://habr.com/ru/articles/982188/?utm_campaign=982188
@a_cup_of_java | Другие наши каналы
Привет, это снова Егор. И да - это снова статья про Фидонет. Так уж сложилось, что именно эта тематика оказался слишком уж популярным на моём Хабре, и неразрывно связана со мной, хотя я всячески пытался "сбежать" от данной тематики.
Однако я решил совместить приятное с полезным - рассказать про недавние мои поправки в NodehistJ, которые значительно ускорит индексацию диффов нодлистов сети Фидонет, а также значительно снизит потребление ОЗУ, за счёт одного из лучших вещей, которая есть в Spring Data JDBC - live streaming данных с СУБД без использования неэффективной пагинации. Данная технология позволяет быстро перебирать нодлисты за считанные минуты, и ускорить индексацию даже на слабых серверах, за счёт прямого перебора данных из СУБД, в live-режиме, без использования неэффективной пагинации, но с использованием самых обычного Java Streams.
Читать: https://habr.com/ru/articles/982188/?utm_campaign=982188
@a_cup_of_java | Другие наши каналы
Easy Maven — Dependencies Search. Или воскрешаем Maven Dependency Helper плагин
Всем привет! Недавно я опубликовал статью, в которой сказал что она будет последней по Easy Maven т.к. все что можно я уже делегировал Maven - импорт проекта и запуск тасков. Но недавнее обилие багов в IDEA 2025.3 связанных как с зависанием так и повышенным потреблением памяти, окунуло меня в баг трекер IDEA, где я нашел много похожих проблем, которые также затрагивают и мавен индексы. Помню как меня самого это раздражало, когда IDEA чуть ли не при каждом открытии, начинает сканировать локальный репозиторий. Про это даже писали в комментариях - где ответ был один - отключить это. Плюс недавно один из постов в тг канале (спасибо за это @javadev), еще больше убедил меня в том, что так дальше жить нельзя и я решил поправить проблему поиска зависимостей так как я ее вижу - не изобретать велосипед, а делегировать поиск туда, где это уже реализовано. Ведь как известно: самый лучший код - тот который ты не написал. Посмотрим что из этого вышло.
Читать: https://habr.com/ru/articles/981132/?utm_campaign=981132
@a_cup_of_java | Другие наши каналы
Всем привет! Недавно я опубликовал статью, в которой сказал что она будет последней по Easy Maven т.к. все что можно я уже делегировал Maven - импорт проекта и запуск тасков. Но недавнее обилие багов в IDEA 2025.3 связанных как с зависанием так и повышенным потреблением памяти, окунуло меня в баг трекер IDEA, где я нашел много похожих проблем, которые также затрагивают и мавен индексы. Помню как меня самого это раздражало, когда IDEA чуть ли не при каждом открытии, начинает сканировать локальный репозиторий. Про это даже писали в комментариях - где ответ был один - отключить это. Плюс недавно один из постов в тг канале (спасибо за это @javadev), еще больше убедил меня в том, что так дальше жить нельзя и я решил поправить проблему поиска зависимостей так как я ее вижу - не изобретать велосипед, а делегировать поиск туда, где это уже реализовано. Ведь как известно: самый лучший код - тот который ты не написал. Посмотрим что из этого вышло.
Читать: https://habr.com/ru/articles/981132/?utm_campaign=981132
@a_cup_of_java | Другие наши каналы
Под капотом многопоточной синхронизации в Java: как потоки договариваются через Mark Word
Когда вы пишете synchronized(obj), под капотом происходит целая цепочка событий, которую можно отследить до Mark Word — восьмибайтового служебного поля в каждом Java-объекте. В современных реализациях JVM (таких как HotSpot, OpenJ9, GraalVM) используется динамическая, адаптивная система, которая выбирает наиболее эффективную стратегию блокировки в зависимости от реального поведения потоков.
Читать: https://habr.com/ru/articles/982600/?utm_campaign=982600
@a_cup_of_java | Другие наши каналы
Когда вы пишете synchronized(obj), под капотом происходит целая цепочка событий, которую можно отследить до Mark Word — восьмибайтового служебного поля в каждом Java-объекте. В современных реализациях JVM (таких как HotSpot, OpenJ9, GraalVM) используется динамическая, адаптивная система, которая выбирает наиболее эффективную стратегию блокировки в зависимости от реального поведения потоков.
Читать: https://habr.com/ru/articles/982600/?utm_campaign=982600
@a_cup_of_java | Другие наши каналы
✍1
Инженерия создания микросервиса spring-web-flux
Создать Spring-сервис просто: существует масса статей и отличная документация. Однако среди всего этого многообразия материалов зачастую сложно разобраться, какой именно набор технологий лучше выбрать и каким образом эти технологии должным образом интегрировать друг с другом. После перехода на новые версии библиотек многое начинает функционировать иначе, появляются совершенно другие подходы. В данной статье я хочу продемонстрировать один из возможных способов разработки микросервиса в 2026 году, а также рассмотреть несколько инструментов автоматической генерации кода: OpenApiGenerator, JooqCodegen, GigaChat, Liquibase — и объяснить, как они работают вместе в рамках единого проекта.
Точкой отсчета для построения микросервиса сделаем описание REST API. Допустим, в нашем фантастическом мире аналитик заранее подготовил спецификацию API с помощью формата OpenAPI, хотя подобное встречается и в реальной практике.
Читать: https://habr.com/ru/articles/982774/?utm_campaign=982774
@a_cup_of_java | Другие наши каналы
Создать Spring-сервис просто: существует масса статей и отличная документация. Однако среди всего этого многообразия материалов зачастую сложно разобраться, какой именно набор технологий лучше выбрать и каким образом эти технологии должным образом интегрировать друг с другом. После перехода на новые версии библиотек многое начинает функционировать иначе, появляются совершенно другие подходы. В данной статье я хочу продемонстрировать один из возможных способов разработки микросервиса в 2026 году, а также рассмотреть несколько инструментов автоматической генерации кода: OpenApiGenerator, JooqCodegen, GigaChat, Liquibase — и объяснить, как они работают вместе в рамках единого проекта.
Точкой отсчета для построения микросервиса сделаем описание REST API. Допустим, в нашем фантастическом мире аналитик заранее подготовил спецификацию API с помощью формата OpenAPI, хотя подобное встречается и в реальной практике.
Читать: https://habr.com/ru/articles/982774/?utm_campaign=982774
@a_cup_of_java | Другие наши каналы
Java-дайджест: Spring Shell 4.0 и обновления инструментов
По материалам InfoQ: Spring Shell 4.0 GA, JReleaser 1.22.0 с улучшенной поддержкой подписывания, TornadoInsight теперь совместим с TornadoVM 2.0, Apache Camel 4.14.3 и свежие ранние сборки JDK.
Подробности: https://www.infoq.com/news/2026/01/java-news-roundup-dec29-2025/
#en
@a_cup_of_java | Другие наши каналы
По материалам InfoQ: Spring Shell 4.0 GA, JReleaser 1.22.0 с улучшенной поддержкой подписывания, TornadoInsight теперь совместим с TornadoVM 2.0, Apache Camel 4.14.3 и свежие ранние сборки JDK.
Подробности: https://www.infoq.com/news/2026/01/java-news-roundup-dec29-2025/
#en
@a_cup_of_java | Другие наши каналы
JEP 525: таймауты и улучшенные Joiner в структурной конкуренции Java
В статье InfoQ: в preview 6 JEP 525 ввёл onTimeout для Joiner, scope.join() может вернуть частичные результаты как List<t, а также мелкие API‑уточнения. Это облегчает обработку таймаутов и частичных результатов.
Подробности: https://www.infoq.com/news/2026/01/timeout-joiner-refinements/
#en @a_cup_of_java | Другие наши каналы
В статье InfoQ: в preview 6 JEP 525 ввёл onTimeout для Joiner, scope.join() может вернуть частичные результаты как List<t, а также мелкие API‑уточнения. Это облегчает обработку таймаутов и частичных результатов.
Подробности: https://www.infoq.com/news/2026/01/timeout-joiner-refinements/
#en @a_cup_of_java | Другие наши каналы
InfoQ
JEP 525 Brings Timeout Handling and Joiner Refinements to Java’s Structured Concurrency
JEP 525, a highlight in the upcoming JDK 26, refines structured concurrency for clearer, safer task management. This iteration introduces a timeout callback for custom joiners, enhancing flexibility and error handling. With streamlined APIs and focus on practical…