Если сравнивать Spring Framework с огромным супермаркетом, где есть всё, что может понадобиться, то Spring Boot — это набор готовых продуктовых корзин с подобранными продуктами. Там, скорее всего, будет несколько типичных наборов из того, что люди покупают чаще всего. Например, хлеб, молоко, масло, гречка, куриная грудка, минеральная вода. Вместо того чтобы искать всё это по полкам, вы просто берёте подходящую корзину, оплачиваете и используете её. Spring Boot — это инструмент, разработанный на базе Spring, который взял на себя задачу упростить создание приложений. Он сделал это за счёт предоставления автоматической конфигурации (автоконфигурации), набора предустановленных "стартеров" (starters) и встроенных серверов. Проще говоря, Spring Boot — это удобный пакет, который помогает вам сразу начать работать, вместо того чтобы тратить часы на настройку.
Но зачем? Почему нельзя просто использовать "обычный" Spring Framework?
Если вы ещё не написали большое Spring-приложение вручную, вот краткий экскурс в то, что вы могли бы делать:
- Настраивать зависимости руками (включая кучу XML или аннотаций).
- Подключать сервер приложений, например Tomcat, отдельно.
- Тонко конфигурировать все модули один за другим.
Spring Boot упрощает этот процесс за счёт следующих ключевых функций:
- Автоконфигурация: больше никаких "где моя XML-конфигурация?". Spring Boot проанализирует ваш проект и автоматически включит необходимые настройки.
- Стартеры (starters): готовые наборы зависимостей с разумными настройками. Например, хотите REST API? Берите
spring-boot-starter-web, и всё работает! - Встроенные веб-серверы: Tomcat, Jetty или Undertow запускаются прямо из коробки. Никакого "куда отвалился сервер?".
- Production-ready функции: подключение к мониторингу, управление метриками, проверка здоровья приложения (Actuator) — всё уже встроено.
По сути, Spring Boot создан для ленивых разработчиков... то есть для разумных разработчиков, которые хотят сосредоточиться на бизнес-логике, а не на конфигурации.
Основные компоненты Spring Boot
Стартеры (starters) Стартеры — это как пакеты ингредиентов, из которых вы можете приготовить блюдо, не бегая по всему супермаркету. Если вам нужен REST API, просто добавьте стартер:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Spring Boot стартеры уже содержат все необходимые зависимости (например, Spring Web, Jackson для работы с JSON и так далее).
Некоторые популярные стартеры:
spring-boot-starter-data-jpa— для работы с базами данных через JPA.spring-boot-starter-security— для добавления аутентификации и авторизации.spring-boot-starter-test— для тестирования приложений.
Автоконфигурация Spring Boot анализирует, какие зависимости вы подключили, и автоматически применяет нужные настройки. Например, если вы используете spring-boot-starter-web, Spring Boot конфигурирует встроенный Tomcat, создает DispatcherServlet и другие веб-компоненты.
Пример: если вы добавили на класс путь к REST-контроллеру, Spring Boot уже знает, что перед ним веб-приложение, и настроит сервер:
@RestController
@RequestMapping("/api")
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, Spring Boot!";
}
}
Встроенные веб-серверы Spring Boot поставляется со встроенными серверами, такими как Tomcat. Это позволяет вам запустить приложение как обычный Java-класс, а не как War-файл на внешнем сервере.
Пример:
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
При запуске этого класса Spring Boot автоматически поднимет сервер на порту 8080 (по умолчанию).
Production-ready функции Spring Boot Actuator позволяет вам получить метрики и мониторить приложение. Встроенные endpoints дают информацию о состоянии приложения, метриках, загрузке памяти и многом другом.
Пример включения Actuator:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Преимущества Spring Boot
Основные плюсы
- Скорость разработки: первое приложение можно собрать буквально за несколько минут.
- Легкость настройки: конфигурация через
application.propertiesилиapplication.yml(никаких XML). - Поддержка DevTools: грейзинг, автоматический перезапуск при изменениях в коде.
- Гибкость: при необходимости вы всё равно можете настроить всё вручную.
REST API за 5 минут Со Spring Boot создание REST API — это минимальное количество усилий. Вот пример:
@RestController
@RequestMapping("/api")
public class UserController {
@GetMapping("/users")
public List<String> getUsers() {
return List.of("Alice", "Bob", "Charlie");
}
}
Запустите приложение, и Spring Boot сделает всё остальное. Теперь у вас есть REST API, который возвращает список пользователей.
Микросервисы Spring Boot как будто бы создан для микросервисов. Быстрая разработка, встроенные серверы и поддержка Spring Cloud делают его идеальным инструментом для построения масштабируемой, отказоустойчивой архитектуры.
Spring Boot упрощает разработку
Пример с автоконфигурацией Допустим, вы решили подключить базу данных. В Spring Framework вам пришлось бы конфигурировать подключение вручную. В Spring Boot достаточно прописать настройки в application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
Spring Boot автоматически настроит DataSource, подключение к базе данных и даже Hibernate.
Встроенные профили Бывает, что вам нужны разные настройки для разработки (dev) и продакшена (prod). Spring Boot поддерживает профили:
# application-dev.properties
server.port=8081
# application-prod.properties
server.port=80
Запускайте приложение с нужным профилем:
java -jar myapp.jar --spring.profiles.active=prod
Когда использовать Spring Boot?
Spring Boot отлично подходит для:
- REST API и CRUD-приложений.
- Микросервисной архитектуры.
- Rapid Prototyping (быстрая разработка прототипов).
- Приложений, где важен production-ready функционал.
Однако если ваш проект очень маленький и не требует сложных зависимостей, использование Spring Boot может быть избыточным.
Spring Boot — это как кофе-машина для разработчика. Конечно, можно варить кофе вручную, с фильтром и мюзеткой, но зачем, если можно нажать одну кнопку и получить готовый напиток? Уже в следующей лекции мы погрузимся в практику: создадим первое Spring-приложение с использованием всех возможностей Spring Boot.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ