Spring Boot
2026-02-26 15:01 Diff

Программирование на Spring Boot начинается с подготовки репозитория и заканчивается запуском приложения. В этом уроке мы пройдем этот путь — вы напишете свое первое работающее приложение на Spring Boot. Начнем с установки Spring Boot. Ее можно выполнить тремя способами:

  • С помощью пакетных менеджеров. Это самый удобный способ, если вы умеете пользоваться терминалом
  • С помощью сайта start.spring.io. На этом сайте вы можете выбрать нужную конфигурацию и скачать архив с кодом или скопировать исходники прямо с сайта
  • С помощью нашего шаблона. По ссылке вы найдете репозиторий, который мы подготовили специально для этого курса. В нем мы разместили начальный код приложения, а еще подключили и настроили разные полезные подсистемы, которые понадобятся для работы почти во всех случаях. Выбрав этот способ установки, вы сэкономите немало времени на настройке

В целях обучения мы пойдем по пути ручной настройки — будем добавлять и разбирать каждый файл в проекте. Начнем с настройки Gradle-проекта. Создадим директорию spring-example и инициализируем Gradle-проект базового типа (basic) внутри нее:

Далее настроим build.gradle.kts. В качестве group можно указать любой префикс — например, io.hexlet:

Здесь мы видим три зависимости в виде starter-пакетов. Это метапакеты, то есть они не содержат код. Их задача — подключить целый набор пакетов, связанных по какому-то признаку. Рассмотрим несколько примеров:

  • В базовый starter-пакет входит не только Spring Boot, но еще и пакет для логирования, пакет для автоконфигурирования и тому подобное
  • В пакет spring-boot-starter-test входит все необходимое для тестирования
  • В пакет spring-boot-starter-web входит все нужное для работы с HTTP

В будущих уроках мы еще не раз столкнемся с подобными пакетами, которые команда Spring Boot заботливо подготовила для нас.

Кроме указания зависимостей, Spring Boot поставляется с двумя плагинами Gradle:

  • Плагин dependency-management упрощает работу с зависимостями. Обратите внимание, что зависимости указаны без версий. Работая с плагином, вы можете просто указать версию самого плагина, а он самостоятельно проставит эту же версию всем пакетам Spring Boot
  • Другой плагин добавляет команды необходимые для сборки, тестирования и запуска приложения на Spring Boot

Подробнее с плагинами и командами мы познакомимся позже. На этом базовая настройка закончена, и теперь мы можем добавить код нашего приложения. Создадим соответствующую структуру директорий:

Теперь добавим код приложения в файл Application.java:

В этом коде мы видим такие элементы:

  • Метод main() — внутри него запускается Spring Boot
  • Две аннотации, которые настраивают приложение:
    • @SpringBootApplication выполняет автоконфигурацию приложения по установленным зависимостям. Например, стартер web добавляет Tomcat и Spring MVC, настраивая Spring Boot на работу в режиме веб-приложения
    • @RestController отмечает классы, которые содержат обработку маршрутов
  • Обработчик маршрута / — он определяется аннотацией @GetMapping и маршрутом, переданным в нее. Сам обработчик называется home(), но это не принципиально, потому что в Spring Boot нет ограничений на именование. Обработчик возвращает строку, которая вернется как тело HTTP-ответа, что удобно в простых ситуациях

Запустим приложение. Для этого понадобится команда bootRun, добавленная плагином org.springframework.boot:

Дальше есть два варианта — можно открыть в браузере localhost

или выполнить запрос через curl. В обоих случаях мы увидим на экране фразу Hello World!:

Чтобы остановить приложение, можно набрать комбинацию клавиш Ctrl-С.

Spring Boot DevTools

Во время установки мы добавили в Gradle несколько пакетов, в том числе этот:

Он включает автоматический рестарт приложения при его изменениях, что значительно упрощает и ускоряет работу. Пакет начинает работать автоматически после установки, но это не всегда срабатывает из-за особенностей работы разных IDE. Если вы столкнулись с проблемой, откройте документацию и выполните инструкции для вашей IDE.