RU

Уязвимость пришла из зависимости, которую вы не добавляли: ловим дыры в Spring до прода в GitLab

В статье разбираем на боевом примере (Spring Boot 4.1, Java 21, GitLab 19.1), как поймать уязвимую зависимость в merge request&nbs…

безопасность зависимостейтранзитивные зависимостиGitLab CIDependency ScanningSpring BootMavenSBOMуязвимости CVEsupply chain security
Habr
RU

Два месяца спустя. Что я понял, пока пытался сделать E2EE-мессенджер

Два месяца назад я опубликовал статью про свой pet-проект — E2EE-мессенджер. Честно говоря, я не ожидал, что она вызовет такой интерес. Прилетели комм…

E2EEend-to-end encryptionDouble RatchetX3DHWebCryptoSpring BootReactElectronPostgreSQLRedis
Habr
RU

Как сделать MCP-сервер из Spring-сервиса за один вечер. И что потом не даст спать спокойно

AI‑агенту не нужен прямой доступ к базе, чтобы отвечать на вопросы оператора или вызывать действия в системе. Достаточно дать…

MCPSpring AIJavaSpring BootAI-агентыLLM-интеграциимикросервисыбезопасность LLMprompt injectionархитектура ИИ-приложений
Habr
RU

Black-box тесты на Java: функциональные тесты за секунды и в параллель и почему я остался на своих

Я наткнулся на подход к функциональным тестам, который меня по-настоящему удивил. Тесты в нём вообще не знают, что внутри Spring: стучатся в реально п…

функциональные тестыинтеграционные тестыblack-box тестыSpring BootTestcontainersJaCoCoflaky-тестыпокрытие кодаJavaтестирование
Habr
RU

HikariCP в проде: пять настроек, которые часто крутят неправильно

В проде connection pool редко падает громко — чаще он тихо превращает сервис в очередь ожидания: запросы висят, база задыхается, Kubern…

HikariCPJDBCSpring Bootconnection poolPostgresпул соединенийтаймаутыproductionнастройка сервисамониторинг
Habr
RU

C# мне нравится больше Java. Но в банковском enterprise мне всё равно понадобилась Java

C# я до сих пор считаю одним из самых удобных языков для backend разработки. В нём много вещей к которым быстро привыкаешь: свойства, LINQ, async/awai…

C#JavabackendenterpriseбанкиSpring Boot.NETмикросервисыимпортозамещениекарьера
Habr
RU

Сможете ли вы спроектировать Maven‑монорепозиторий для 5 микросервисов?

В этой статье мы разберём реальную задачу на проектирование Maven Multi‑Module: от циклических зависимостей и неправильного использован…

MavenмонорепозиториймикросервисыSpring Bootmulti-moduledependencyManagementMaven Wrapperархитектура сборкиJava
Habr
RU

Skills для AI-агентов: всё, что тебе нужно знать

Добавляя новый Skill, мы ждем от агента простого результата: меньше ошибок, более стабильная работа и лучшее понимание библиотек и фреймворков. На пра…

AI-агентыSpring Bootskills для AI-агентовSpring Agent Toolkitактивация skillsYAML frontmatterprompt engineering
Habr
RU

Как мы перестали размножать BIRT‑шаблоны и собрали блочную платформу self‑service генерации страховых полисов в PDF

Когда документов и партнёров стало много, модель «один кейс — один шаблон» начала мешать даже простым правкам. Рассказываю, как мы вынесли композицию,…

BIRTPDFгенерация документовшаблоныJavaSpring Bootверсионированиеконфигурированиеself-serviceстрахование
Habr
RU

Как развернуть Spring Boot в Kubernetes за полчаса: туториал

Хотите увидеть, как живое Spring Boot‑приложение проходит путь от репозитория до кластера Kubernetes? В статье пройдем путь от&nbs…

Spring BootKubernetesDockerдеплой приложенияконтейнеризацияGitLab CIKubernetes Deploymenthealth-checkproduction-ready
Habr
RU

Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения

Привет, Хабр. Я Java-разработчик и в основном работаю с backend: Spring Boot, базы данных, интеграции, авторизация, WebSocket — всё то, что обычно нах…

E2EEмессенджерSpring BootX3DHкриптографияWebSocketJavaшифрованиеSignal ProtocolWebCrypto