RU

HikariCP в проде: три раза, когда пул соединений уронил сервис, и почему maximumPoolSize тут был ни при чём

В прошлой статье про PostgreSQL я разбирал три инцидента на стороне базы — блокировки, bloat и ночные пересчёты. В комментариях несколько человек на…

hikaricpпул соединенийSpring BootPostgreSQLconnection poolJDBCтранзакциипроизводительностьconnection leakвысоконагруженные системы
Habr
RU

Авторизация как код, но не в коде: ABAC для Spring Boot на Open Policy Agent

Авторизация в Spring обычно живёт в аннотациях и SpEL — и ломается на иерархии ресурсов и фильтрации списков. Как вынести правила доступа в OPA, не…

Open Policy AgentOPAABACRegoавторизацияSpring BootSpring Securitypolicy as codepartial evaluationконтроль доступа
Habr
RU

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

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

безопасность зависимостейтранзитивные зависимостиGitLab CIDependency ScanningSpring BootMavenSBOMуязвимости CVEsupply chain security
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 редко падает громко — чаще он тихо превращает сервис в очередь ожидания: запросы висят, база задыхается, Kube…

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

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

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

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

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

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

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

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

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

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