Spring Boot

  • Рубрика записи:Spring back-end

Программисты – люди неглупые. А ещё любители автоматизировать всякие похожие друг на друга задачи. Одной из таких задач в рамках фреймворка Spring является создание и настройка проекта. Чтобы разработчики могли не сетовать на сложные манёвры с зависимостями, они могут воспользоваться Spring Boot.

Давайте узнаем, как использовать Spring Boot, как создать и настроить проект с зависимостями, и даже как запустить его в браузере. Делать я это буду в среде разработки IntelliJ IDEA Ultimate Edition.

Что такое Spring Boot

Spring Boot – это фреймворк в семействе Spring Framework для создания веб-приложений на языке Java. Он предоставляет простой способ разработки Spring-приложений с минимальными усилиями по настройке. Таким образом, разработчики могут направлять свои усилия на написание самого проекта, а не возиться с его настройкой и конфигурациями.

SpringBoot-приложение имеет свою типичную структуру. Исходный код Java располагается внутри папок src/main/java. Ресурсы вроде файлов конфигурации, картинок, css, js и так далее хранятся внутри папок src/main/resources.

Чтобы SpringBoot-приложение понимало, что именно нужно запускать, существует специальная аннотация @SpringBootApplication. Ей помечается тот класс, который будет запускаться при запуске программы. Вдобавок, этот класс должен содержать метод main(), который будет точкой входа в приложение.

Создание проекта

Итак, для создания проекта Spring Boot можно воспользоваться удобным инструментом – Spring Initializer. В общей сложности, это сайт, который позволяет выбрать зависимости, необходимые для проекта. После этого можно сгенерировать получившийся проект.

Нужно перейти на этот сайт или ввести в поисковике “Spring Initializer”:

Настройка проекта SpringBoot на сайте Spring Initializer

Теперь нужно настроить будущий проект. В качестве сборщика возьмём Maven. Язык программирования, конечно же, Java. Версию Spring Boot и Java возьмём такую, какую предлагают по умолчанию. Packaging – Jar.

А теперь нужно ввести немного данных о будущем приложении:

  • Group – группа пакетов, пространство имён проекта. В сущности – несколько слов через точку. Я задам com.myapp.
  • Artifact – базовый пакет приложения. Обычно используется в качестве основного имени для проекта. Задам ему значение backend.
  • Name – название проекта. Будет идентично параметру Artifact, тоже backend.
  • Description – пару слов о проекте. Оставлю как есть – “Demo project for Spring Boot”.
  • Package name – название пакета – составляется автоматически из заданных заранее Group и Artifact. Так что менять это поле не буду.
Настройка информации о проекте SpringBoot на сайте Spring Initializer

Отлично, базовая информация о проекте записана. Теперь самое время обратиться к правой колонке на сайте – зависимостям проекта. Здесь нужно указать, что мы хотим использовать в своём проекте.

Диалоговое окно зависимостей проекта SpringBoot на сайте Spring Initializer

Когда вы нажмёте справа сверху кнопку “Add dependencies”, появится диалоговое окно. В нём содержится список зависимостей, доступных к добавлению в ваш проект.

Среди них нам понадобится несколько штук, а именно – 4. Для просмотра зависимостей можно пролистывать список, а можно и вводить ключевые слова в поисковую строку сверху.

Вам нужно определиться, какую базу данных вы собираетесь использовать в проекте. Это может быть MySQL, MS SQL Server, PostgreSQL, Oracle и другие. От этого зависит зависимость (ха-ха), связанная с БД, которую вам предстоит сейчас добавить.

Я буду использовать СУБД PostgreSQL. Вы можете использовать другую – разницы в разработке проекта особо не будет. Кстати, минимум различий при использовании разных СУБД обеспечивается благодаря подходу фреймворка Spring. Это удобно. Впоследствии мы создадим, настроим и подключим БД к проекту.

Зависимость Oracle Driver на сайте Spring Initializer
Зависимость MS SQL Server Driver на сайте Spring Initializer
Зависимость MySQL Driver на сайте Spring Initializer
Зависимость PostgreSQL Driver на сайте Spring Initializer

Посмотрите: в поиске по нескольким буквам можно найти нужную вам зависимость, связанную с выбранной вами СУБД. Spring Initializer содержит и многие другие драйверы для различных баз данных.

Я добавила последний – PostgreSQL Driver. Теперь давайте разберёмся с остальными зависимостями будущего проекта.

Для нашего проекта, помимо зависимости для СУБД, потребуются Spring Web, Spring Data JPA и Lombok. Теперь обо всех по порядку.

  • Spring Web – зависимость для создания Web-приложения на Spring.
  • Spring Data JPA – работа с данными из базы как с Java-объектами, удобная передача этих объектов.
  • Lombok – очень крутой инструмент для сокращения однотипного кода (например, геттеров, сеттеров, конструкторов, toString(), equals() и т.д.). Позволяет лаконично замещать его при помощи аннотаций.
  • PostgreSQL Driver – для соединения и работы с базой данных PostgreSQL.
Настройка зависимостей проекта SpringBoot на сайте Spring Initializer

Настройка проекта завершена! Осталось нажать на кнопку Generate внизу, и zip-архив с проектом начнёт скачиваться.

Открытие SpringBoot-проекта, сгенерированного на сайте Spring Initializer

Когда архив будет скачан, разархивируйте его, а затем откройте с помощью среды разработки. У меня это IntelliJ IDEA Ultimate Edition.

Среда разработки покажет специальным значком, какая именно папка может быть открыта как проект. Внутри этой папки должны содержаться характерные папки и файлы: .mvn, src, pom.xml.

После нажатия кнопки OK нужно будет немного подождать. Среда разработки подумает, скачает зависимости, настроит проект.

После того, как все окошки и полосы состояния отработают, можно посмотреть, что же получилось.

Содержимое проекта

Итак, исходный код можно найти внутри папок src/main/java. Здесь хранится папка с указанным нами ранее названием пакета, com.myapp.backend. А в нём – файл с кодом на Java – BackendApplication.java.

Ресурсы проекта хранятся внутри папок src/main/resources. Пока что там пусто, кроме важного файла application.properties. Этот файл задаёт самые главные настройки приложения. Туда же мы впоследствии будем писать информацию для подключения к базе данных.

Также в проекте располагается файл pom.xml. Там хранятся зависимости проекта. В этом файле уже находится много кода, поскольку его автоматически сгенерировал сайт Spring Initializer.

Структура SpringBoot-проекта, сгенерированного на сайте Spring Initializer

В файле pom.xml расположены зависимости, которые мы указали на сайте: Spring Data JPA, Spring Web, Lombok, PostgreSQL Driver. Это можно увидеть в коде файла pom.xml:

Файл BackendApplication.java содержит маленький класс. Но этот класс – главный в приложении, так как он помечен аннотацией @SpringBootApplication. Именно с него будет начинаться программа. Вот, что там сейчас лежит:

Запуск проекта

Чтобы запустить проект, можно нажать на зелёную стрелочку запуска справа сверху. Однако сейчас это завершится ошибкой:

Ошибка при запуске SpringBoot-проекта из-за зависимости Spring Data JPA

Так происходит потому, что мы указали в зависимостях Spring Data JPA, а источники данных ещё не указали. Но с базой данных поработаем попозже. Давайте сейчас запустим проект без неё. Для этого нужно закомментировать в файле pom.xml всё, связанное со Spring Data JPA. После чего обязательно нужно синхронизировать изменения, чтобы среда разработки обновила проект. Уже потом можно его запускать.

Изменённый pom.xml:

Теперь по кнопке запуска всё будет хорошо, проект запустится. Но пока что в нём ничего нет. Давайте создадим маленький класс-контроллер HelloController, который будет выводить “Hello, Beauty of Java!”. Этот файл нужно расположить там же, где находится файл главного класса приложения, BackendApplication.java. Напишем туда следующий код:

Подробно разбирать, что здесь к чему, будем в следующих статьях. А сейчас давайте посмотрим, что получилось! Чтобы обратиться к запущенному проекту, нужно в браузере написать в адресной строке localhost:8080/hello. localhost означает подключение к самому себе (к этому компьютеру), 8080 – это порт, а /hello – это строка, указанная нами в классе HelloController.

Запуск SpringBoot-проекта в браузере под localhost:8080

Ура, получилось! Вы можете немного поиграться с текстом или строкой вместо “/hello“, чтобы наглядно понять, как это работает. Вот и запущен SpringBoot-проект! Пока что не такой масштабный, но это только начало.

Что ж, это было увлекательное знакомство со Spring Boot и его удобствами. В итоге мы создали и запустили SpringBoot-проект. Не забудьте раскомментировать зависимости в файле pom.xml – они нам пригодятся для следующих уроков. Удачи в back-end разработке!

Добавить комментарий