Spring Boot
Теория: Знакомство с Spring Boot
Программирование на 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.



