Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Что такое Quarkus

Quarkus — фреймворк для серверных приложений на Java. Он помогает быстро написать REST API или микросервис: принимает HTTP-запросы, превращает объекты в JSON, работает с базой данных, проверяет права доступа. Главная идея Quarkus — приложение должно быстро запускаться и потреблять мало памяти, чтобы его было удобно запускать в облаке и контейнерах.

Почему Quarkus быстрый

Обычный Java-фреймворк при каждом запуске сканирует классы, читает аннотации и строит внутренние структуры. Quarkus делает большую часть этой работы заранее — во время сборки проекта. Этот приём называется build-time processing (обработка при сборке). В результате:

ЧтоЧто это даёт
Быстрый стартПриложение запускается за секунды, а нативная сборка — за десятки миллисекунд
Мало памятиМеньше классов загружается во время работы
Режим разработкиКод меняется и сразу работает без перезапуска вручную
Нативная сборкаПриложение можно собрать в обычный исполняемый файл без JVM

Стандарты вместо своего API

Quarkus не придумывает новые аннотации там, где есть стандарт. Вы будете писать код на привычных спецификациях Jakarta EE и MicroProfile:

  • Jakarta REST — аннотации @Path, @GET, @POST для REST-эндпоинтов;
  • CDI — внедрение зависимостей через @Inject;
  • Jakarta Persistence и Hibernate ORM — работа с базой данных;
  • MicroProfile Config — настройки из application.properties.

Возможности подключаются расширениями (extensions) — это Maven-зависимости вида quarkus-rest, quarkus-hibernate-orm-panache. Нужна база данных — добавили расширение, не нужна — его нет в проекте.

Версия в курсе

Курс написан для Quarkus 3.40 и Java 25. Quarkus 3 работает на Java 17, 21 и 25; генератор проектов сам выбирает версию Java, на которой он запущен. Сборка — через Maven.

Проверьте, что Java установлена:

java -version

Команда должна показать версию 25 (подойдёт и 21). Maven отдельно ставить не обязательно: в каждом проекте Quarkus есть обёртка mvnw, которая скачает Maven сама.

Что мы построим

Через весь курс мы будем делать REST API блога:

  1. Эндпоинты /posts для списка, просмотра, создания и удаления постов.
  2. Комментарии к постам и база данных через Hibernate ORM с Panache.
  3. Проверку входных данных, обработку ошибок, настройки.
  4. Тесты, проверки здоровья, метрики, защиту паролем.
  5. Сборку в jar, нативный файл и контейнер.

Мы будем вызывать API через curl — утилиту командной строки для HTTP-запросов. Она есть в Windows 10+, macOS и Linux.

Частая ошибка

Quarkus требует Java 17 или новее. Если в системе старая Java, сборка падает уже на первой команде с ошибкой вида:

UnsupportedClassVersionError: io/quarkus/bootstrap/runner/QuarkusEntryPoint has been compiled
by a more recent version of the Java Runtime (class file version 61.0), this version of the
Java Runtime only recognizes class file versions up to 60.0

Номер 61 — это Java 17, а 60 — Java 16. Установите JDK 25 и проверьте, что переменная JAVA_HOME указывает именно на него.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.