Чему вы научитесь
- Собирать приложение на 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 и вопросами для самопроверки. Главы с третьей по пятнадцатую завершаются тестовыми задачами с одним верным вариантом; у каждой есть объяснение, которое видно после ответа.
Для кого этот курс
Начальные требования
Опыт промышленной разработки серверных приложений на любом языке: HTTP, SQL, очереди, кэши, конкурентность, деплой. Умение читать Java-код; глубокого знания языка не требуется, но синтаксис должен быть знаком.
Для практики: JDK 27, Docker (для PostgreSQL, Redis и Kafka — их поднимает Micronaut Test Resources), любая IDE с поддержкой Gradle. Для главы про native image — GraalVM 25. Gradle отдельно устанавливать не нужно, в проекте есть wrapper.
Программа курса
В курс входят
- 172 урока
- 91 тест
Наши преподаватели
Сертификат
Что вы получаете
- Восемнадцать глав и сто семьдесят два текстовых урока с исходным кодом, доступные бессрочно
- Полный код сквозного проекта Meterway на Java 27 и Micronaut 5.1: собирается, запускается, покрыт тестами
- Тестовые задачи к главам с третьей по пятнадцатую с объяснением каждого ответа
- Практическая задача по проекту и вопросы для самопроверки в конце каждого урока
- Готовые к переносу в свой сервис решения: конвейер фильтров, обработка ошибок в RFC 9457, идемпотентный приём, квоты на Lua, outbox, тестовый контур на Test Resources