#spring_boot

2026-01-29

[Перевод] Мы сломали Nginx одним limit_req

Что делать, когда инфраструктура, сдерживавшая злоумышленников, внезапно начинает мешать легитимным клиентам? В Dodo Payments такой момент наступил в 23:00 в четверг — и стал точкой невозврата. В новом переводе от команды Spring АйО подробно разберем переход с классического ingress-контроллера на полноценный service mesh. Миграция заняла 11 недель и навсегда изменила подход к платформенной инженерии.

habr.com/ru/companies/spring_a

#java #kotlin #ci #deployment #nginx #spring #spring_boot #spring_framework

2026-01-28

[Перевод] Паттерны проектирования в Data Engineering, которые необходимо освоить в 2026 году

Настоящая устойчивость систем — в архитектуре. В новом переводе от команды Spring АйО — 8 фундаментальных паттернов проектирования, на которых держатся все современные data engineering-стеки. Освоив их, вы перестанете тушить пожары и начнёте проектировать платформы, которые выдерживают продакшен.

habr.com/ru/companies/spring_a

#java #kotlin #system_design #patterns #spring #spring_boot #spring_framework #springboot #spring_data

2026-01-28

[Перевод] 3 критические ошибки в Spring Boot, которые просачиваются в прод (и как их исправить)

Пишешь на Spring Boot уже пару лет и уверен, что знаешь все подводные камни? Рассмотрим классические ошибки, которые продолжают проникать в прод даже у бывалых разработчиков. Вместе с Mohamed Akthar в новом переводе от команды Java Insider разбираем три распространённые проблемы, которые могут привести к бессонным ночам отладки.

habr.com/ru/articles/990018/

#java #spring_boot #spring_framework #spring #springboot

2026-01-22

[Перевод] Почему Kotlin ломает JPA

Используешь Kotlin с Jakarta Persistence и думаешь, что всё работает? Возможно, до первой неожиданной ошибки. data class, val, final-классы и даже значения по умолчанию — всё это может тайно мешать корректной работе JPA. Вместе с Торбеном Янссеном в новом переводе от команды Spring АйО разберем скрытые ловушки и показывают, как настроить проект правильно, чтобы не наступить на мину.

habr.com/ru/companies/spring_a

#java #kotlin #jpa #jvm #spring #spring_boot #spring_framework #springboot

2026-01-20

[Перевод] JVM ещё жива, но уже бесполезна: как Netflix научился убивать её по GC

Вместо того чтобы ждать, пока Java-приложение окончательно "зависнет" из-за GC, инженеры Netflix сделали jvmquake — инструмент, который сам определяет, что JVM уже не спасти, вызывает дамп памяти и аккуратно завершает процесс. Меньше тревог, больше аптайма. Подробности - в новом переводе от команды Spring АйО .

habr.com/ru/companies/spring_a

#java #kotlin #jvm #jvm_hacks #jvm_options #netflix #spring #spring_boot #spring_framework #springboot

2026-01-06

Java Digest — Новогодний спецвыпуск

Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей , Арсений , Роман , Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

habr.com/ru/companies/tbank/ar

#java #java_25 #spring #spring_boot #spring_framework #quarkus #idea #jdk #jdk_26 #lilliput

2025-12-29

Очарованные Hibernate: проблемы, которые ведут разработчика странствовать по production

Hibernate часто работает как надо ровно до того момента, пока не приходит настоящая нагрузка. И тогда выясняется, что безобидные на вид решения отключают batching, ломают пагинацию, умножают число запросов и даже незаметно открывают дополнительные транзакции — ровно там, где вы рассчитывали на один аккуратный запрос в рамках одного unit of work. В этой статье мы постарались собрать добрую дюжину самых неочевидных и при этом действительно продакшн-критичных ошибок работы с Hibernate: как они проявляются в логах и метриках, почему возникают на уровне механики ORM, и какие предохранители помогут поймать их до релиза. Будет практично, предметно и с несколькими моментами, после которых захочется пересмотреть пару любимых паттернов в вашем проекте. поехали ...

habr.com/ru/articles/981386/

#hibernate #spring #spring_boot #postgresql #Hypersistence_Optimizer

2025-12-26

[Перевод] Hidden классы в Java. Что скрывают Lambda выражения

С переходом Java на более безопасные и стандартизированные подходы к динамической генерации классов, скрытые (hidden) классы стали ключевым механизмом замены устаревшего Unsafe::defineAnonymousClass . Они решают проблемы доступности, управления жизненным циклом и контроля доступа, особенно актуальные для разработчиков фреймворков и языков на JVM. Хотя скрытые классы пока не полностью заменяют функциональность Unsafe , они лежат в основе ряда важных механизмов, такие как, например, реализация лямбд в JDK. Подробнее - в новом переводе от команды Spring АйО .

habr.com/ru/companies/spring_a

#java #kotlin #jvm #java_core #spring #spring_boot #spring_framework #springboot #spring_data

2025-12-25

[Перевод] Тред-дампы и Project Loom (виртуальные потоки)

С появлением виртуальных потоков в Java благодаря Project Loom, параллельное программирование стало проще, а производительность — выше. Однако за этой простотой кроются новые вызовы для инструментов отладки и анализа. Как читать тред-дампы, если их теперь тысячи — или миллионы? Какие средства реально помогают найти взаимные блокировки и аномалии в асинхронном коде? Рассмотрим в новом переводе от команды Spring АйО .

habr.com/ru/companies/spring_a

#java #kotlin #ide #spring #spring_boot #spring_framework #springboot #spring_security #spring_data

2025-12-24

Разделяй и тестируй: @DataJpaTest и @WebMvcTest для быстрых тестов Spring Boot

Привет, Хабр! Cегодня рассмотрим, как ускорить интеграционные тесты в Spring Boot с помощью специальных slice аннотаций. Начнём с того, почему вообще тесты могут быть медленными. Используя @SpringBootTest, мы просим Spring Boot поднять весь контекст приложения для каждого тестового класса. У нас доступны все бины, но часто все это избыточно. Например, хочется протестировать контроллер, а Spring загружает ещё и базу данных, и сервисы, и шлёт запросы к Kafka. В результате простой тест метода контроллера может запускаться несколько секунд, пока поднимется веб‑сервер, инициализируется база, подтянутся все классы. Эту проблему осознали и добавили так называемые test slice‑аннотации. Все простоб грузим не весь контекст, а только срез приложения, например, только веб‑слой или только слой доступа к данным. Spring Boot содержит готовые slice‑аннотации для основных слоёв: @WebMvcTest для веб, @DataJpaTest для JPA‑репозиториев, и ещё пачку для других случаев. Рассмотрим на примерах двух интересных слайса: @DataJpaTest и @WebMvcTest.

habr.com/ru/companies/otus/art

#spring #framework #Spring_Boot #интеграционные_тесты

2025-12-19

[Перевод] Spring Boot наконец получил нативную поддержку gRPC

Забудьте о сторонних стартерах и костылях — Spring gRPC 1.0 GA уже здесь. Теперь можно строить высокопроизводительные RPC-сервисы с Protocol Buffers прямо из коробки, без плясок с бубном. В новом переводе от команды Spring АйО рассмотрим пошаговую миграцию со старых решений, генерацию кода из .proto, и сравнение с тем, как это работает в Quarkus.

habr.com/ru/companies/spring_a

#grpc #java #kotlin #spring #spring_boot #springboot #spring_framework #spring_data

2025-12-18

Настраиваем ИИ-помощника бесплатно и без вендорлока в IntelliJ IDEA, GoLand, WebStorm, OpenIDE и GigaIDE

AI-помощники в IDE — уже не фантастика, а ежедневная реальность. Но как сделать так, чтобы они действительно помогали, не лезли не в тему, не сливали код в облако и не требовали подписку на каждого чиха? Ответ — Continue: open source AI-ассистент, который интегрируется с IntelliJ IDEA, GoLand, WebStorm, OpenIDE и другими IDE на базе IntelliJ Platform. Он предоставляет автодополнение, чат, команды над выделенными фрагментами и даже агентный режим с патчами на несколько файлов. Главное — вы выбираете модель и правила игры.

habr.com/ru/companies/haulmont

#ide #llm #llmагент #llmмодели #java #kotlin #spring #spring_boot #spring_framework #springboot

2025-12-17

[Перевод] Изменения цен на GitHub Actions

GitHub только что анонсировал изменения в ценообразовании Actions. Ранее GitHub Actions имел бесплатный control plane. Это означало, что если вы использовали GitHub Actions, но запускали задачи вне GitHub-hosted runners — будь то ваши собственные машины или в вашем собственном AWS аккаунте — вы ничего не платили GitHub за эти минуты; вы платили только за вычислительные ресурсы. Теперь подход изменился. Команда Spring АйО подготовила перевод анонса команды Github.

habr.com/ru/companies/spring_a

#java #kotlin #github #git #github_actions #springboot #spring_boot #spring_framework

2025-12-15

[Перевод] Обнаружение взаимоблокировок на JVM с помощью Fray

Команда Spring АйО подготовила перевод про Fray — инструмент для обнаружения и воспроизведения ошибок многопоточности в Java-программах. Основанный на научных исследованиях и написанный на Kotlin, Fray использует технику теневой блокировки для выявления взаимоблокировок и других проблем синхронизации. Он уже доказал свою эффективность на таких проектах, как Kafka, Flink и Lucene.

habr.com/ru/companies/spring_a

#jvm #java #blocking #kotlin #jvm_hacks #spring #spring_boot #spring_framework #springboot #spring_data

2025-12-12

[Перевод] Как сократить расходы на токены и повысить точность LLM

Когда количество доступных LLM инструментов (tool-ов) разрастается, традиционные подходы к tool calling становятся непрактичными — утилизация токенов улетает ещё до начала общения. К тому же, модели становится сложнее выбрать нужный набор tool-ов для решения проблемы. В новом переводе от команды Spring АйО читаем о паттерне Tool Search Tool, предложенном Anthropic и реализованном в Spring AI с помощью ToolSearchToolCallAdvisor. Он позволяет LLM динамически находить нужные инструменты по мере необходимости, экономя до 64% токенов и повышая точность.

habr.com/ru/companies/spring_a

#llm #tool #java #kotlin #spring #spring_boot #spring_framework #springboot #spring_security #spring_data

2025-12-12

Как приручить iText8: превращаем HTML в PDF без седых волос

Представьте ситуацию: пятница, вечер, до релиза осталось два дня. Заказчик внезапно вспоминает, что «было бы неплохо генерировать договоры в PDF». Знакомо? Я оказался в похожей ситуации год назад. Задача казалась тривиальной: взять HTML-шаблон счёта, подставить данные и получить красивый PDF. «Часа на два работы», — подумал я. Как ошибался...

habr.com/ru/articles/975930/

#iText8 #pdf_generation #html_to_pdf #Spring_Boot #Thymeleaf #конвертация_pdf #генерация_документов

2025-12-11

Elasticsearch: реляционная база данных против поискового движка — Битва Титанов

В мире разработки часто возникает соблазн использовать знакомый инструмент для всех задач. Зачем изучать что-то новое, если есть проверенная реляционная база данных (РСУБД), такая как PostgreSQL или MySQL? Однако, когда дело доходит до реализации мощного, быстрого и релевантного поиска, этот подход терпит неудачу. Elasticsearch — это не просто база данных, это распределенный поисковый и аналитический движок. В этой статье мы проведем детальное сравнение Elasticsearch и реляционных баз данных, разберемся в их архитектурных различиях и определим, когда каждый из инструментов становится титаном в своей нише. Чтобы статья была максимально практико-ориентированной, мы рассмотрим, как с помощью Spring Boot быстро поднять приложение с интегрированным Elasticsearch и реализовать поиск, который «летает».

habr.com/ru/companies/otus/art

#Elasticsearch #реляционные_базы_данных #полнотекстовый_поиск #PostgreSQL #Spring_Boot #масштабирование_поиска #индексирование_данных

2025-12-10

[Перевод] Hibernate Validator 9.1: самый мощный апгрейд за последние годы

Что, если ваш валидатор стал бы в 3 раза быстрее и потреблял бы вдвое меньше памяти — без единой правки бизнес-логики? Именно это случилось с Hibernate Validator 9.1: ушли тяжёлые коллекции, пришёл умный стек. Каскадная валидация теперь летает, даже при циклах в графе объектов. Плюс бонус: меньше мусора в памяти, меньше аллокаций, быстрее интерполяция сообщений. В бенчмарках — просто космос. Все это – в новом переводе от команды Spring АйО . Комментарий Поливаха Михаила : Несмотря на то, что с валидацией мы напрямую работаем не часто, имейте в виду, что Spring Boot и ваши @RestController -ы под капотом всё равно используют hibernate-validator. Поэтому почитайте, не поленитесь.

habr.com/ru/companies/spring_a

#java #kotlin #hibernate #validator #performance #performance_optimization #orm #spring #spring_boot #spring_framework

2025-12-09

Миграция демо-проекта на Spring Boot 4, Spring 7.0, JDK 25

Продолжаю серию публикаций про наши Java-онлайн курсы. Предыдущие посты: Тесты на дженериках. Параметризация AssertJ и сравнение Json через объекты Контроллеры на дженериках: пишем кода в 3 раза меньше Миграция Java Spring Boot на Kotlin Работа с документами в Java Как многие знают, недавно вышел Spring Boot 4 / Spring 7.0. В постах компании @spring_aio есть несколько статей по новому функционалу. Я мигрировал наш небольшой учебный демо-проект Spring Boot 3.x HATEOAS ( ссылка на GitHub ) на Spring Boot 4 и добавил API версионирование. В статье даю ссылки на новый функционал, описываю шаги миграции и код проекта. Буду рад читателям:)

habr.com/ru/articles/974962/

#Java #springboot #spring_boot #spring_framework #spring_boot_4 #миграция #версионирование #api_versioning

2025-12-07

“JavaScript — это плохо, а Java — это хорошо”. AI, вайб-кодинг, Spring и рынок труда: что волнует джавистов сегодня

На конференции Joker 2025 у нас была отличная возможность понять, как живётся Java-сообществу. Как AI влияет на Java-разработку? Вайб-кодинг — полезный инструмент или угроза рабочим местам? Spring — незаменимый фреймворк или слишком тяжёл для многих задач? Что с рынком труда и зачем кандидаты накручивают опыт? И главное — зачем писать на Java, если есть JavaScript? Смотрите на YouTube и VK Видео

habr.com/ru/companies/axiomjdk

#axiomjdk #axiom_jdk #java #jdk #конференция #jokerconf #vibecoding #ai #spring #spring_boot

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst