Spring Boot: создание простого веб-приложения
Расскажем о том, как создать свое веб-приложение на Spring Boot. Эта технология сейчас очень популярна среди разработчиков, потому что позволяет быстро и просто писать веб-сайты и приложения.
Что такое Spring Boot? Это инструмент для создания проектов на языке Java. Он уже содержит в себе все необходимые библиотеки и настройки, поэтому разработчику не нужно тратить много времени на рутинную работу. С Spring Boot можно запустить готовое веб-приложение всего за пару минут!
В этой статье я расскажу, как установить Spring Boot, создать простое веб-приложение, подключить к нему базу данных и развернуть в интернете. В процессе мы научимся:
- Устанавливать необходимые инструменты для разработки
- Создавать проекты на Spring Boot
- Писать код для веб-страниц и обработки данных
- Подключать базы данных и выполнять запросы
- Публиковать готовое приложение в интернете
Если ты уже знаком с Java и веб-разработкой - отлично! Эти знания пригодятся. Но даже новички смогут разобраться по этой статье. Главное - желание создать свое первое веб-приложение!
Установка Spring Boot
Для начала нам нужно установить необходимые инструменты.
- Скачай и установи JDK (комплект для разработки на Java). Минимальная версия - 8.
- Скачай и установи среду разработки IntelliJ IDEA. Это удобный инструмент для написания кода. Есть бесплатная версия Community.
- Скачай и установи MySQL (или любую другую базу данных). Мы будем использовать её для хранения данных.
- Скачай и установи сам Spring Boot из официального репозитория.
На этом подготовка окончена, можно приступать к разработке!
Создание проекта
Запусти IntelliJ IDEA и создай новый проект. Выбери Spring Initializr - это специальный инструмент от Spring, который поможет быстро создать основу.
Дай проекту имя, например "MyFirstApp". Выбери следующие модули:
- Spring Web (для веб-разработки)
- Spring Data JPA (для работы с базами данных)
- MySQL Driver (драйвер для подключения к MySQL)
Нажми Generate - и IntelliJ IDEA автоматически создаст проект со всеми нужными файлами и настройками!
Структура проекта
В корне проекта находятся конфигурационные файлы:
В папке src/main/java находится исходный код:
- MyFirstAppApplication.java - главный класс приложения
- controller - контроллеры для обработки запросов
- model - модели данных
- repository - репозитории для работы с базой данных
Ресурсы как картинки и статические файлы хранятся в папке src/main/resources.
Шаблоны страниц лежат в папке src/main/resources/templates.
Теперь мы готовы написать код нашего первого приложения!
Разработка веб-приложения
Создадим простой сайт-визитку с информацией о себе. Для начала нужно создать контроллер:
@Controller public class MainController { @GetMapping("/") public String home() { return "home"; } }
Этот класс будет обрабатывать запросы на главную страницу. Метод home() возвращает имя шаблона "home".
Добавим шаблон home.html в папку templates:
<!DOCTYPE html> <html> <head> <title>Моя визитка</title> </head> <body> <h1>Привет! Меня зовут Вася.</h1> </body> </html>
Теперь запусти приложение и перейди по адресу http://localhost:8080. Увидишь надпись "Привет!.." - значит все работает!
Добавим еще пару страниц - обо мне и моих увлечениях. Соответственно создадим два метода в контроллере:
@GetMapping("/about") public String about() { return "about"; } @GetMapping("/hobby") public String hobby() { return "hobby"; }
Теперь наш простой сайт готов! Можешь поэкспериментировать и добавить страницы, стили CSS, картинки.
Подключение базы данных
Сайт-визитка это хорошо, но обычно приложения работают с данными. Добавим к нашему проекту базу данных.
В файле application.properties пропишем настройки для подключения к MySQL:
spring.datasource.url=jdbc:mysql://localhost:3306/myfirstapp spring.datasource.username=root spring.datasource.password=qwerty
Где myfirstapp - имя базы данных, root - логин, qwerty - пароль. Создай эту БД в MySQL.
Теперь создадим простую сущность Product (товар):
@Entity public class Product { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; private double cost; // геттеры и сеттеры }
И репозиторий для доступа к данным:
public interface ProductRepository extends JpaRepository<Product, Long> { }
Всё готово! Теперь из контроллера можно делать запросы к БД используя репозиторий:
@Autowired private ProductRepository productRepository; @GetMapping("/products") public String showProducts(Model model) { List<Product> products = productRepository.findAll(); model.addAttribute("products", products); return "products"; }
Аналогично можно реализовать операции создания, обновления и удаления товаров.
Тестирование
Прежде чем публиковать, нужно протестировать наше приложение.
Для контроллеров можно написать юнит-тесты с помощью JUnit и проверить, что запросы работают корректно:
@ExtendWith(MockitoExtension.class) class MainControllerTest { @MockBean private ProductRepository productRepository; @Autowired private MainController controller; @Test public void testHomePage() throws Exception { String viewName = controller.home(); assertEquals("home", viewName); } }
Для репозиториев - интеграционные тесты, чтобы убедиться, что к базе данных всё подключилось:
@SpringBootTest class ProductRepositoryTest { @Autowired private ProductRepository repository; @Test public void testFindAll() { List<Product> products = repository.findAll(); Assertions.assertEquals(3, products.size()); } }
Если все тесты проходят - можно деплоить!
Деплой
Чтобы опубликовать веб-приложение, его нужно разместить на специальном хостинге.
Сборку проекта обычно делают с помощью Maven. Для этого в pom.xml нужно описать все зависимости.
Потом создают JAR-файл приложения командой:
mvn package
Этот файл уже можно деплоить на выбранный хостинг согласно его инструкциям.
Например, для хостинга Heroku нужно:
- Создать аккаунт на сайте Heroku
- Установить HEROKU CLI
- Выполнить команду git init и добавить репозиторий
- Выполнить команду heroku create
- Сделать коммит и пуш на Heroku git push heroku master
После этих шагов приложение будет опубликовано на Heroku и доступно online!
Заключение
В этой статье мы разобрали то, как создать простое веб-приложение на Spring Boot с нуля.
Были рассмотрены следующие темы:
- Установка инструментов разработки
- Создание проекта и структура кода
- Написание контроллеров и шаблонов
- Подключение базы данных
- Тестирование приложения
- Деплой на хостинг