Работа с фреймворком Micronaut в Java-бекенд разработке

Курс о том, как строить серверные системы на Micronaut 5.1 и Java 27: контейнер бинов без рефлексии, HTTP-сервер на Netty, Micronaut Data JDBC, транзакции, compile-time AOP, Security, Redis, Kafka, наблюдаемость и native image. Для разработчиков с опытом в других бекенд-языках, которым нужен не рассказ про бекенд…
Продвинутый уровень
5–7 часов в неделю
Сертификат Stepik

Чему вы научитесь

  • Собирать приложение на Micronaut 5.1 и Java 27: контейнер бинов, скоупы, квалификаторы, @Factory, @Requires, @Replaces, типобезопасная конфигурация
  • Писать HTTP-слой на Micronaut: контроллеры, привязку параметров и тела, @ServerFilter, маршрутизацию ошибок, лимиты Netty
  • Описывать контракты API через Micronaut Serialization, jakarta.validation, RFC 9457 и генерируемый из исходников OpenAPI
  • Выбирать модель исполнения осознанно: event loop, @ExecuteOn, виртуальные потоки, реактивные типы и распространение PropagatedContext
  • Работать с данными через Micronaut Data JDBC: @MappedEntity, производные запросы, @Query, проекции, Criteria API, пагинация, батчи
  • Управлять транзакциями и схемой: @Transactional и его ловушки, программные транзакции, Flyway, оптимистичная блокировка, несколько источников данных
  • Применять compile-time AOP: свои аннотации и перехватчики, @Retryable, @CircuitBreaker, кэширование, @Introduction
  • Строить устойчивые интеграции на декларативных и низкоуровневых HTTP-клиентах с фильтрами, таймаутами и повторами
  • Настраивать аутентификацию и авторизацию в Micronaut Security: JWT, refresh-токены, API-ключи, авторизацию по данным, мультитенантность
  • Использовать Redis из Micronaut как кэш, атомарный счётчик квот и распределённый примитив
  • Организовывать фоновую работу: @Scheduled, TaskScheduler, однократность в кластере, события приложения, graceful shutdown
  • Передавать и обрабатывать сообщения через Micronaut Kafka: @KafkaClient, @KafkaListener, стратегии ошибок, retry-топики, батчи, Kafka Streams
  • Тестировать Micronaut-приложение: @MicronautTest, Test Resources, подмена бинов, тесты контроллеров, данных, Kafka и безопасности
  • Делать систему наблюдаемой: management-эндпоинты, health-индикаторы, Micrometer с Prometheus, OpenTelemetry, корреляция логов
  • Добавлять real-time: @ServerWebSocket, broadcaster, SSE, GraphQL с резолверами и загрузчиками данных
  • Собирать native image на GraalVM, настраивать Micronaut AOT и понимать, где native не подходит
  • Готовить приложение к продакшену: конфигурация, сборка образов, Kubernetes, многомодульный проект, миграция с Micronaut 4

О курсе

Micronaut отличается от привычных контейнеров тем, что почти всё решает до запуска: внедрение зависимостей, метаданные бинов, реализации репозиториев, перехватчики и клиенты появляются во время компиляции, а не в рантайме. Это меняет и способ писать код, и способ его отлаживать. Пропущенный annotation processor, отсутствующий @Serdeable, @Transactional через this, фильтр, попавший в конвейер раньше SecurityFilter, — ошибки, которых нет в рефлексивных фреймворках, и которые в Micronaut приходится узнавать в лицо.

Курс идёт по механизмам фреймворка в том порядке, в котором они нужны работающему сервису: контейнер бинов и конфигурация, HTTP-сервер и привязка параметров, контракты API и Micronaut Serialization, модель исполнения (event loop, виртуальные потоки, реактивные типы, распространение контекста), Micronaut Data JDBC и транзакции, compile-time AOP, HTTP-клиенты и устойчивость интеграций, Micronaut Security, Redis, планировщик и события, Micronaut Kafka, тестирование, наблюдаемость, real-time (WebSocket, SSE, GraphQL), GraalVM native image и AOT, эксплуатация в проде.

Сквозной проект

Весь курс собирает одну систему — Meterway, платформу учёта потребления и тарификации для сервисов, которые продают доступ по факту использования. Она принимает поток событий потребления от чужих систем, дедуплицирует их, проверяет квоту, складывает агрегаты, применяет ступенчатый тариф и выставляет счёт за расчётный период, а об исходящих событиях уведомляет вебхуками.

Из инженерных задач Meterway взяты те, у которых нет однострочного решения: идемпотентный приём на высокой частоте, опоздавшие и переупорядоченные события, денежная арифметика без потери копеек, атомарная проверка квоты под конкуренцией, повторяемое закрытие периода, мультитенантная изоляция на уровне запроса и данных, холодный старт ingest-подов.

Проект лежит в репозитории курса целиком: ./gradlew run поднимает окружение через Micronaut Test Resources и запускает приложение. Файл, показанный в уроке, находится в проекте в том же виде.

Репозиторий проекта можно клонировать здесь.

Стек

Java 27, Micronaut Framework 5.1 (platform BOM 5.1.3), Gradle 9.6 на Kotlin DSL, Netty, Micronaut Serialization, Micronaut Data JDBC и PostgreSQL 18, Flyway, Redis 8 через Lettuce, Apache Kafka 4.x, Micronaut Security с JWT и API-ключами, Micrometer с Prometheus, OpenTelemetry, JUnit 6 с Micronaut Test и Test Resources, GraalVM native image.

Чего в курсе нет

Курс не учит языку Java и не объясняет бекенд как таковой: HTTP-методы, индексы, транзакции как понятие, устройство JWT как формата предполагаются известными. Новый синтаксис Java (records, sealed-иерархии, pattern matching, виртуальные потоки) вводится по мере надобности, а не как отдельная тема. Spring упоминается только там, где опыт Spring мешает не наступить на compile-time грабли. Jackson Databind, RxJava 2 и идиомы Micronaut 3/4 не используются — кроме урока про миграцию с четвёртой версии.

Как проходит обучение

Уроки текстовые, читаются как главы технической книги: инженерная ситуация, механизм фреймворка, исходный код, последствия в проде, типичные ошибки. Код занимает больше места, чем рассуждения. Каждый урок заканчивается практической задачей по Meterway и вопросами для самопроверки. Главы с третьей по пятнадцатую завершаются тестовыми задачами с одним верным вариантом; у каждой есть объяснение, которое видно после ответа.

Для кого этот курс

Для middle-разработчиков, пришедших из других системных и бекенд-языков — Go, Rust, C#, Kotlin, Node.js, Python, C++, — которым нужно освоить Micronaut, а не бекенд вообще. Подойдёт Java-разработчикам с опытом Spring, которые переходят на Micronaut и хотят понять compile-time модель, а не переносить привычки. Подойдёт тем, кто выбирает фреймворк для сервисов с быстрым стартом и малым потреблением памяти и хочет увидеть Micronaut на реальной системе. Не подойдёт, если вы начинаете с программирования или с языка Java: базовые конструкции языка, HTTP, SQL и очереди здесь не объясняются. Не подойдёт, если нужен курс по Spring — сравнения со Spring в курсе минимальны.

Начальные требования

Опыт промышленной разработки серверных приложений на любом языке: HTTP, SQL, очереди, кэши, конкурентность, деплой. Умение читать Java-код; глубокого знания языка не требуется, но синтаксис должен быть знаком.

Для практики: JDK 27, Docker (для PostgreSQL, Redis и Kafka — их поднимает Micronaut Test Resources), любая IDE с поддержкой Gradle. Для главы про native image — GraalVM 25. Gradle отдельно устанавливать не нужно, в проекте есть wrapper.

Программа курса

В курс входят

  • 172 урока
  • 91 тест
загружаем...

Наши преподаватели

Certificate

Сертификат

Сертификат Stepik

Что вы получаете

  • Восемнадцать глав и сто семьдесят два текстовых урока с исходным кодом, доступные бессрочно
  • Полный код сквозного проекта Meterway на Java 27 и Micronaut 5.1: собирается, запускается, покрыт тестами
  • Тестовые задачи к главам с третьей по пятнадцатую с объяснением каждого ответа
  • Практическая задача по проекту и вопросы для самопроверки в конце каждого урока
  • Готовые к переносу в свой сервис решения: конвейер фильтров, обработка ошибок в RFC 9457, идемпотентный приём, квоты на Lua, outbox, тестовый контур на Test Resources

Сколько стоит обучение

999 ₽
Вы попробовали и поняли, что вам сейчас не подходит этот курс? Ничего страшного, мы вернём вам деньги в течение 30-ти дней после покупки.

Часто задаваемые вопросы

Расскажите о курсе друзьям