Spring Boot зробив створення додатків швидким і приємним. Замість довгого налаштування конфігурацій, можемо одразу почати писати код. Давай подивимось, як це працює.
1. Процес створення додатку
Наша подорож починається зі створення проекту. Як хороший майстер обирає правильні інструменти для роботи, так і ми оберемо правильні інструменти для нашого Spring Boot додатку. Головний помічник тут — Spring Initializr, який візьме на себе всю рутину по налаштуванню проекту.
Крок 1. Використовуємо Spring Initializr
Spring Initializr — це інструмент, який дозволяє дуже легко налаштувати проект: потрібно лише заповнити форму. Можете відкрити https://start.spring.io/ і вибрати такі параметри для нашого проекту:
- Тип проекту: Maven або Gradle (обираємо Maven, щоб було простіше).
- Мова: Java.
- Spring Boot версія: остання стабільна версія (наприклад, 3.0.0).
- Артефакт:
hello-world-app. - Залежності:
- Spring Web (для створення REST API),
- Spring Boot DevTools (для автоматичної перезагрузки).
Натискаємо кнопку «Generate» і завантажуємо архів. Розпаковуємо його в зручне місце і відкриваємо в улюбленій IDE (наприклад, IntelliJ IDEA або Eclipse).
Spring Initializr часто називають «чарівною кнопкою», бо він справді рятує від рутини. Одна кнопка — і у вас готовий проект!
Крок 2. Заглядаємо в проект
Відкрийте проект, і ви побачите стандартну структуру Spring Boot-додатку:
src/main/java
└── com.example.helloworldapp
└── HelloWorldAppApplication.java
src/main/resources
├── application.properties
└── static/ (для статичних файлів, наприклад, CSS і JS)
Ключовий файл — це HelloWorldAppApplication.java. Він містить точку входу вашого додатку:
package com.example.helloworldapp;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloWorldAppApplication {
public static void main(String[] args) {
SpringApplication.run(HelloWorldAppApplication.class, args);
}
}
Анотація @SpringBootApplication об'єднує три анотації: @Configuration, @EnableAutoConfiguration і @ComponentScan. Вона каже Spring Boot: "Ей, це додаток, зроби всю магію за мене!"
2. Написання простого REST-контролера
Тепер додамо трохи функціоналу. Створимо REST-контролер, який буде відповідати на запити привітальним повідомленням. У директорії src/main/java/com/example/helloworldapp створимо новий клас HelloController.
Виглядає він так:
package com.example.helloworldapp;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Привіт, Spring Boot!";
}
}
Ось тут починається магія. Анотація @RestController каже Spring, що цей клас буде обробляти HTTP-запити. А анотація @GetMapping("/hello") вказує, що метод sayHello() має викликатися, коли користувач відправляє GET-запит на адресу /hello.
Як це працює?
Spring Boot автоматично налаштовує всі базові компоненти. Достатньо позначити клас анотацією @RestController, і Spring Boot зробить всю чорнову роботу: підніме веб-сервер, налаштує обробку HTTP-запитів, підключить конвертацію в JSON. Коли приходить запит на /hello, вся ця попередньо налаштована інфраструктура просто робить свою справу — навіть думати не треба про те, як запустити Tomcat або налаштувати серіалізацію.
3. Запускаємо додаток
Тепер, коли у нас є контролер, пора запускати додаток. Для цього відкрийте клас HelloWorldAppApplication і натисніть "Run" в вашій IDE. Ви повинні побачити в консолі щось на кшталт:
Tomcat started on port(s): 8080 (http)
Started HelloWorldAppApplication in 2.345 seconds (JVM running for 2.678)
Це означає, що вбудований сервер Tomcat запущений, і наш додаток готовий приймати запити.
Як перевірити?
Відкрийте браузер або інструмент на кшталт Postman і введіть URL: http://localhost:8080/hello. Ви побачите:
Привіт, Spring Boot!
Вітаю! Це ваш перший працюючий REST API.
4. Налаштування порту та інших параметрів
Раптом ви хочете використовувати інший порт (наприклад, 9090)? Усе просто. Відкрийте файл application.properties в директорії src/main/resources і додайте рядок:
server.port=9090
Тепер перезапустіть додаток і відкрийте http://localhost:9090/hello. Порт змінився, а додаток продовжує працювати. Зручно, правда?
5. Практичне завдання: додаємо CRUD
Щоб закріпити матеріал, додайте в ваш додаток новий контролер TaskController. Цей контролер буде працювати з простим списком задач. Для спрощення ми поки не будемо використовувати базу даних — просто опрацюємо операції в пам'яті.
Крок 1. Допоміжний клас Task
Додайте в проект наступний клас:
package com.example.helloworldapp;
public class Task {
private Long id;
private String name;
public Task(Long id, String name) {
this.id = id;
this.name = name;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Крок 2. Реалізація контролера
Додайте новий клас TaskController:
package com.example.helloworldapp;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/tasks")
public class TaskController {
private final List<Task> tasks = new ArrayList<>();
@GetMapping
public List<Task> getTasks() {
return tasks;
}
@PostMapping
public Task addTask(@RequestBody Task task) {
tasks.add(task);
return task;
}
@DeleteMapping("/{id}")
public void deleteTask(@PathVariable Long id) {
tasks.removeIf(task -> task.getId().equals(id));
}
}
Тепер ви можете додавати, отримувати і видаляти задачі через URL /tasks.
Загальні помилки і як їх уникнути
- Якщо додаток не запускається, перевірте наявність залежностей у файлі
pom.xml. Можливо, ви забули додатиspring-boot-starter-web. - Якщо ви не бачите результату в браузері, переконайтесь, що ваш метод контролера помічений анотацією
@GetMappingабо подібною. - Після змін у коді переконайтесь, що ви перезапустили додаток. Або використовуйте
Spring Boot DevToolsдля автоматичної перезагрузки. - Поширена помилка новачків — забувають прописати правильний шлях до методу. Наприклад, запит
/api/tasksне буде працювати, якщо ваш контролер слухає/tasks.
На цьому етапі ваш Spring Boot додаток готовий! Тепер ви можете створювати веб-додатки, REST API і багато іншого, не тонучи в конфігураціях. Але це тільки початок вашої пригоди. Готуйтесь до ще більшої кількості можливостей попереду!
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ