JavaRush /Курсы /Модуль 5. Spring /Разработка первого Spring-приложения

Разработка первого Spring-приложения

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

Прежде чем начать, давайте кое-что проясним: Hello World — это не просто традиция, это своего рода ритуал посвящения. Если вы не написали "Hello World" на своём новом фреймворке, значит, вы ещё не начали на нём работать. Сегодня мы создадим наш первый проект на Spring Boot. И знаете что? Всё будет суперпросто, без лишней головной боли. Готовы? Поехали!


Шаг 1: Подготовка проекта

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

  1. Откройте Spring Initializr в вашем браузере.
  2. Заполните следующие параметры:
    • Project: Maven (или Gradle — на ваш вкус, но мы используем Maven в этом примере).
    • Language: Java.
    • Spring Boot Version: 3.1.0 (последняя стабильная версия).
    • Group: com.example.
    • Artifact: helloworld.
    • Name: helloworld.
    • Packaging: jar.
    • Java Version: 17 (или другой, если у вас особая рабочая среда, но лучше 17+).
  3. Добавьте зависимость:
    • Spring Web (она нужна для работы REST-контроллеров).
  4. Нажмите "Generate" — ваш проект будет скачан в виде архива.

Разархивируйте проект в удобную папку на компьютере, а затем откройте его в вашей любимой IDE. До этого момента большинство из вас использовало IntelliJ IDEA (Community Edition работает отлично). Здесь она тоже прекрасно подойдет.


Шаг 2: Структура проекта

Давайте взглянем, что за структура у нашего проекта. Она выглядит примерно так:

helloworld/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/example/helloworld/
│   │   │       └── HelloworldApplication.java
│   │   ├── resources/
│   │       └── application.properties
├── pom.xml
  • src/main/java — тут мы будем писать наш Java-код.
  • src/main/resources/application.properties — основной файл конфигурации для приложения.
  • HelloworldApplication.java — наш главный класс с аннотацией @SpringBootApplication. Именно отсюда всё запускается.

И, конечно, pom.xml (или build.gradle, если вы выбрали Gradle) для управления зависимостями.


Шаг 3: Создание Hello World контроллера

Итак, приступим! Нам нужно создать класс-контроллер, который будет возвращать сообщение "Hello World!". Контроллер — это компонент, который обрабатывает HTTP-запросы, поступающие к вашему приложению.

Создайте новый файл HelloController.java в папке src/main/java/com/example/helloworld:


package com.example.helloworld;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

// Аннотация @RestController делает этот класс REST-контроллером.
@RestController
@RequestMapping("/api") // Базовый путь для всех эндпоинтов в этом контроллере.
public class HelloController {

    // Аннотация @GetMapping обозначает, что этот метод обрабатывает GET-запросы.
    @GetMapping("/hello")
    public String sayHello() {
        // Возвращаем простое сообщение.
        return "Hello, World!";
    }
}

Кратко поясним:

  • @RestController объединяет в себе @Controller и @ResponseBody. Это нужно, чтобы возвращать данные напрямую в HTTP-ответ (без работы с шаблонами).
  • @RequestMapping задаёт базовый URL для всех запросов в этом контроллере. В нашем случае это /api.
  • @GetMapping("/hello") говорит, что метод sayHello будет вызываться, когда клиент отправляет GET-запрос на /api/hello.

Шаг 4: Настройка и запуск приложения

Теперь давайте убедимся, что наше приложение запускается. Для этого откройте HelloworldApplication.java (он уже был сгенерирован Spring Initializr). Вы увидите следующий код:


package com.example.helloworld;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloworldApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloworldApplication.class, args);
    }
}

Этот класс делает три вещи:

  1. Аннотация @SpringBootApplication включает:
    • @Configuration — позволяет определять конфигурационные бины.
    • @EnableAutoConfiguration — автоматически настраивает всё, что можно.
    • @ComponentScan — ищет компоненты (бины) в текущем и вложенных пакетах.
  2. Метод main запускает приложение. Да, Spring Boot настолько прост!
  3. SpringApplication.run() инициализирует наш контекст и сервер.

Теперь запустите приложение. Вы можете сделать это:

  • В IntelliJ IDEA: нажмите на зелёный треугольник рядом с main.
  • Через терминал: выполните команду mvn spring-boot:run.

Если всё прошло успешно, вы увидите в терминале что-то вроде:


Tomcat started on port(s): 8080 (http) with context path ''
Started HelloworldApplication in 2.345 seconds

Шаг 5: Проверка работы приложения

А теперь давайте проверим, всё ли работает. Откройте ваш браузер (или Postman, если хотите выглядеть профессионально) и перейдите по следующему адресу:


http://localhost:8080/api/hello

Вуаля! Вы должны увидеть:


Hello, World!

Как это работает?

Когда вы отправляете GET-запрос на /api/hello, Spring Boot автоматически вызывает метод sayHello() в вашем контроллере. Этот метод возвращает строку "Hello, World!", которая отображается в вашем браузере.


Типичные ошибки и способы их устранения

  1. Ошибка 404 (Not Found): проверьте, соответствует ли URL /api/hello. Возможно, вы ввели его неправильно или забыли указать /api в @RequestMapping.
  2. Приложение не запускается: убедитесь, что класс HelloworldApplication находится в корневом пакете com.example.helloworld.
  3. Ошибка порта (Port already in use): это означает, что порт 8080 уже занят. Вы можете изменить порт в файле application.properties, добавив строку:
    
    server.port=8081
    
  4. Проблемы с зависимостями: убедитесь, что в вашем pom.xml есть зависимость для Spring Web:
    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    

Практическое применение знаний

Понимание того, как создать простое приложение, — это первый шаг к написанию полноценного REST API. На собеседованиях часто спрашивают "Как создать базовый проект Spring Boot?", а умение настроить контроллер для обработки HTTP-запросов уже вселяет в вас больше уверенности.

Чуть позже мы добавим сложные контроллеры, базы данных, транзакции и безопасность, но уже сейчас вы освоили фундаментальные инструменты, которые понадобятся для более серьёзных задач.

Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Алексей Уровень 115
26 сентября 2025
Hello, World!