#Spring_Boot

2026-02-04

Разработка приложения на Spring Boot, Java, База данных, профиль пользователя. Часть 2

Всех приветствую! В прошлый раз я не указал важный аспект: на данном этапе проект - это монолит. Однако архитектура закладывается с учетом того, что в будущем систему можно будет разнести на разные серверы. Хочу поблагодарить пользователей за конструктивную критику в комментариях. В частности, @aleksandy верно подметил использование LocalDateTime вместо Instant. Повторюсь: на этапе прототипирования это осознанный выбор для удобства отладки и прямого контроля данных в БД "глазами", без конвертации часовых поясов в уме. Переход на Instant - это стандарт для продакшена, и он заложен в план развития. Также коснулись темы equals() и hashCode(). В текущей реализации я использую getClass(). Знаю, что это не учитывает работу Hibernate Proxy (когда вместо реального объекта мы получаем его обертку-пустышку для ленивой загрузки). На текущей "плоской" структуре данных это не критично, но как только мы перейдем к сложным связям, будет рефакторинг этих методов через instanceof, чтобы избежать ошибок сравнения.

habr.com/ru/articles/992904/

#java #java_spring #spring #spring_boot #spring_framework #backend

2026-02-04

[Перевод] Почему ваш Docker-контейнер взломают завтра (и как этого избежать)

«Контейнер скомпрометирован». С этих слов начался трёхчасовой ночной кошмар с утечкой данных и полным отчётом об инциденте. Всё из-за банального запуска контейнера от root с лишними правами. Тут не нужно быть хакером или гуру DevSecOps. Проблема в том, что безопасность попросту игнорируют. В новом переводе от команды Spring АйО — 11 конкретных шагов, которые помогут вам избежать катастрофы: от запуска от непривилегированного пользователя до минимальных образов, сканирования уязвимостей, изоляции сетей и настройки профилей безопасности. Если вы разворачиваете контейнеры в продакшене — это руководство должно стать вашей чеклист-основой. Ошибка может стоить очень дорого.

habr.com/ru/companies/spring_a

#java #kotlin #docker #devops #spring #spring_boot #spring_framework

2026-02-02

Разработка приложения на Spring Boot, Java, База данных, профиль пользователя. Часть 1

Всем привет! Когда речь заходит о разработке высоконагруженных систем, многие предлагают: «python, сделать проще и быстрее». Но есть проблема: Скорость разработки != скорость и качество работы сервиса. Когда мы делаем любой продукт, важны: Масштабируемость, стабильность работы под большой нагрузкой, предсказуемость поведения системы — особенно когда речь идет о тысячах одновременных пользователей, лентах новостей в реальном времени, уведомлениях и сложных связях между разными сущностями. Именно поэтому и выбрана Java и Spring Boot как основа. Банки, сервисы видео, они работают именно на Java и Spring. Одна из особенностей: строгая типизация, качественные инструменты для многопоточности, мощная экосистема и предсказуемое потребление памяти делают Java идеальным выбором для систем, где падение = полная потеря пользователей. Попробую сделать цикл статей по разработке соцсети, которая будет объединять в себе ВК, пикабу, и иже с ними. Не ради «создания продукта который затмит всех и вся», а ради самого программирования. Итак, начну, среда разработки Intellij Idea. О, точно, весь проект будет доступен из gitLab. Нам необходимо создать файлы с конфигурацией. можно сказать что их обычно 3. Да, я про application.yml. один из них общий, который так и называется: application.yml, и еще два: application-dev.yml и application-prod.yml

habr.com/ru/articles/991974/

#java #spring #spring_boot #spring_framework #backend

2026-02-02

Kotlin + Spring Boot: полный гайд по монолиту на 2026 год

Всем привет, меня зовут Сергей Прощаев, и в этой статье я расскажу про то, с чего на самом деле стоит начинать большинство backend-проектов в 2026 году. Spoiler alert: это не микросервисы. Я покажу, как собрать простое, но полноценное монолитное приложение на Spring Boot и Kotlin — тот самый надежный фундамент, который позволит вам запустить MVP за недели, а не месяцы. А в конце расскажу, где можно системно прокачать навыки Kotlin-разработчика, чтобы строить такие системы уже профессионально.

habr.com/ru/companies/otus/art

#Kotlin #Spring_Boot #java #монолит #REST_API #архитектура #бэкендразработка

2026-02-01

Создаем Telegram-бота для отслеживания погоды за 5 минут с помощью Nyagram (а не очередного PizzaBot)

В большинстве туториалов по Java-ботам нам предлагают написать EchoBot или магазин пиццы на огромных switch-case конструкциях. Но в 2026 году, когда у нас есть Java 21 и Spring Boot 3 , писать бойлерплейт — это преступление против продуктивности. Сегодня мы напишем WeatherBot — полезного бота, который показывает реальную погоду через API OpenWeatherMap, имеет кнопку обновления "на лету" и, используя FSM (Машину состояний) с валидацией данных, позволяет настроить ежедневную рассылку прогноза.

habr.com/ru/articles/991414/

#telegram #java #telegrambot #github #java21 #spring_boot #spring_mvc #боты #tutorial #программирование

2026-01-30

Три модели многопоточности: Event Loop, Platform Threads и Virtual Threads

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

habr.com/ru/articles/991162/

#java #spring #spring_boot #spring_framework #springboot #многопоточность #multithreading

2026-01-30

[Перевод] Redis — это больше, чем просто кэш

Пора перестать воспринимать Redis как временное хранилище key-value. Сегодня это многофункциональный движок, объединяющий в себе брокер сообщений с поддержкой Pub/Sub, гео-БД с Spatial-индексами, и надежный инструмент синхронизации через распределенные блокировки (Redlock). Современный Redis, потенциально, может заменить стек из 3–4 узкоспециализированных сервисов. В новом переводе от команды Spring АйО рассмотрим, как использовать Redis на полную катушку и превратить его в фундамент вашей архитектуры.

habr.com/ru/companies/spring_a

#redis #java #kotlin #database #базы_данных #db #spring #spring_boot #spring_framework

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

Client Info

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