Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Запуск и встроенный сервер

Приложению Spring Boot не нужен отдельно установленный веб-сервер. Сервер Tomcat уже лежит внутри как обычная библиотека и стартует вместе с программой. Поэтому запуск — это одна команда.

Первый адрес

Чтобы приложение что-то отвечало, добавим маленький контроллер. Создайте файл рядом с BlogApplication.java:

// src/main/java/com/example/blog/HelloController.java
package com.example.blog;
 
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class HelloController {
 
    @GetMapping("/hello")
    public String hello() {
        return "Привет от Spring Boot!";
    }
}

@RestController говорит Spring, что класс обрабатывает HTTP-запросы, а @GetMapping("/hello") связывает метод с адресом /hello. Подробно контроллеры разберём в третьей главе.

Запуск

Из папки проекта выполните:

./mvnw spring-boot:run

В Windows (cmd или PowerShell) команда пишется как mvnw.cmd spring-boot:run. Первый запуск долгий: Maven Wrapper скачивает Maven и библиотеки. В конце журнала появится (строки сокращены):

 :: Spring Boot ::                (v4.1.1)
 
INFO ... Starting BlogApplication using Java 25.0.4.1 with PID 12236
INFO ... No active profile set, falling back to 1 default profile: "default"
INFO ... Tomcat initialized with port 8080 (http)
INFO ... Starting Servlet engine: [Apache Tomcat/11.0.24]
INFO ... Tomcat started on port 8080 (http) with context path '/'
INFO ... Started BlogApplication in 3.008 seconds

Строка Tomcat started on port 8080 значит, что сервер ждёт запросов. Программа не завершается сама — она работает, пока вы не нажмёте Ctrl+C.

Проверка

Откройте в браузере http://localhost:8080/hello или вызовите адрес из другого терминала:

curl -i http://localhost:8080/hello
HTTP/1.1 200
Content-Type: text/plain;charset=UTF-8
 
Привет от Spring Boot!

Ключ -i показывает строку статуса и заголовки ответа. Если запросить несуществующий адрес, Spring Boot сам вернёт ответ 404 в формате JSON.

Другой порт

Порт задаётся в файле настроек:

# src/main/resources/application.properties
spring.application.name=blog
server.port=8081

После перезапуска приложение откроется на http://localhost:8081. Порт можно передать и при запуске, не меняя файл: ./mvnw spring-boot:run -Dspring-boot.run.arguments=--server.port=8081.

Перезапуск после правок

Каждое изменение Java-кода требует перезапуска: Ctrl+C и снова ./mvnw spring-boot:run. В IntelliJ IDEA удобнее запускать класс BlogApplication зелёной кнопкой рядом с методом main. Модуль Spring Boot DevTools с start.spring.io умеет перезапускать приложение сам при пересборке кода.

Частая ошибка

Если запустить приложение второй раз, не остановив первое, старт оборвётся:

***************************
APPLICATION FAILED TO START
***************************
 
Description:
 
Web server failed to start. Port 8080 was already in use.

Порт 8080 уже занят — первой копией программы или другим сервером. Остановите прежний запуск через Ctrl+C в его терминале или смените server.port.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.