Что такое Spring и Spring Boot
Spring — самый распространённый фреймворк для серверных приложений на Java. Он берёт на себя рутину: принимает HTTP-запросы, превращает объекты в JSON, работает с базой данных, проверяет пароли. Вам остаётся писать код, который относится именно к вашей задаче.
Spring и Spring Boot
Это два связанных проекта:
| Проект | Что делает |
|---|---|
| Spring Framework | Ядро: создаёт объекты приложения и связывает их, обрабатывает веб-запросы, управляет транзакциями |
| Spring Boot | Надстройка над Spring: готовые настройки, встроенный веб-сервер, запуск одной командой |
Раньше приложение на Spring приходилось долго настраивать вручную. Spring Boot делает это сам: видит, какие библиотеки подключены, и включает для них разумные настройки по умолчанию. Этот подход называется автоконфигурацией.
Версии в этом курсе
Курс написан для Spring Boot 4.1 — текущей основной версии. Она работает на Spring Framework 7 и требует Java 17 или новее; мы используем Java 25. Сборка проекта — через Maven.
Если вы встретите в интернете примеры для Spring Boot 2 или 3, многое в них совпадает, но названия некоторых зависимостей и пакетов изменились. Ориентируйтесь на код из этого курса.
Что мы построим
Через весь курс проходит один пример — блог:
- REST API для статей, комментариев и пользователей с загрузкой картинок и документацией в Swagger UI;
- хранение данных в базе через Spring Data JPA;
- несколько HTML-страниц на шаблонизаторе Thymeleaf;
- вход по логину и паролю через Spring Security и токены JWT для API;
- тесты, в том числе на настоящей PostgreSQL, фоновые задачи, кеш и выкладка на сервер.
Путь запроса
Каждый запрос к приложению проходит одни и те же шаги:
- Клиент (браузер или
curl) отправляет запрос, напримерGET /api/posts. - Встроенный сервер Tomcat принимает его и передаёт Spring.
- Spring находит метод контроллера, отвечающий за этот адрес.
- Контроллер вызывает сервис с логикой приложения.
- Сервис читает или сохраняет данные через репозиторий.
- Результат превращается в JSON или HTML и уходит клиенту.
Каждому шагу посвящены отдельные уроки.
Что нужно знать заранее
Курс рассчитан на тех, кто прошёл учебник Java: классы, записи (record), коллекции, лямбды, исключения и основы JDBC. Также пригодится умение запускать команды в терминале. Для проверки API мы будем использовать curl — он есть в Windows 10+, macOS и Linux.
Частая ошибка
Spring и Spring Boot часто путают и ищут ответ «как настроить Spring», получая инструкции на XML из 2010 года. В современном проекте на Spring Boot XML-файлы настроек не нужны: всё задаётся аннотациями в Java-коде и файлом application.properties. Если в найденном примере есть applicationContext.xml или web.xml, он для другой эпохи.