Запуск и встроенный сервер
Приложению 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/helloHTTP/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.