JavaRush /Курсы /Модуль 5. Spring /Создание и запуск Spring Boot приложений

Создание и запуск Spring Boot приложений

Модуль 5. Spring
4 уровень , 6 лекция
Открыта

Spring Boot сделал создание приложений быстрым и приятным. Вместо долгой настройки конфигурации, мы можем сразу начать писать код. Давайте посмотрим, как это работает.

1. Процесс создания приложения

Наше путешествие начинается с создания проекта. Как хороший мастер выбирает правильные инструменты для работы, так и мы выберем правильные инструменты для нашего Spring Boot приложения. Главный помощник здесь — Spring Initializr, который возьмёт на себя всю рутину по настройке проекта.

Шаг 1. Используем Spring Initializr

Spring Initializr — это инструмент, который позволяет очень легко настроить проект: вам нужно все лишь заполнить форму. Вы можете открыть https://start.spring.io/ и выбрать следующие параметры для нашего проекта:

  1. Тип проекта: Maven или Gradle (выбираем Maven, чтобы было проще).
  2. Язык: Java.
  3. Spring Boot версия: последняя стабильная версия (например, 3.0.0).
  4. Артефакт: hello-world-app.
  5. Зависимости:
    • Spring Web (для создания REST API),
    • Spring Boot DevTools (для автоматической перезагрузки).

Нажимаем кнопку "Generate" и скачиваем архив. Распаковываем его в удобное место и открываем в любимой IDE (например, IntelliJ IDEA или Eclipse).

Fun fact:

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.


Общие ошибки и как их избежать

  1. Если приложение не запускается, проверьте наличие зависимостей в файле pom.xml. Возможно, вы забыли добавить spring-boot-starter-web.
  2. Если вы не видите результата в браузере, убедитесь, что ваш метод контроллера помечен аннотацией @GetMapping или подобной.
  3. При изменении кода убедитесь, что вы перезапустили приложение. Или используйте Spring Boot DevTools для автоматической перезагрузки.
  4. Частая ошибка новичков — забывают прописать правильный путь к методу. Например, запрос /api/tasks не будет работать, если ваш контроллер слушает /tasks.

На этом этапе ваше Spring Boot приложение готово! Теперь вы можете создавать веб-приложения, REST API и многое другое, не утопая в конфигурациях. Но это только начало вашего приключения. Готовьтесь к ещё большему количеству возможностей впереди!

Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ