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 с нуля.
Были рассмотрены следующие темы:
- Установка инструментов разработки
- Создание проекта и структура кода
- Написание контроллеров и шаблонов
- Подключение базы данных
- Тестирование приложения
- Деплой на хостинг