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 и многое другое, не утопая в конфигурациях. Но это только начало вашего приключения. Готовьтесь к ещё большему количеству возможностей впереди!
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ