Короткий ответ
Spring Boot — фреймворк, построенный поверх Spring Framework и упрощающий разработку автономных (stand-alone) приложений, готовых к продакшену. Его ключевые механизмы — авто-конфигурация, стартовые зависимости (starters) и встроенный веб-сервер.
Как это работает подробнее
Spring — это общий фреймворк: контейнер IoC/DI, AOP, Spring MVC, управление транзакциями; он требует довольно большой ручной настройки и, как правило, внешнего сервера. Spring Boot — расширение, которое работает «поверх» Spring и использует те же Spring Core, Spring AOP и Spring MVC, но сильно упрощает их применение.
- Авто-конфигурация: убирает большую часть шаблонной ручной конфигурации, в первую очередь XML-настройку.
- Стартеры: берут на себя управление зависимостями — не нужно вручную подбирать версии библиотек.
- Встроенный сервер: Tomcat, Jetty или Undertow позволяют запускать приложение как обычный исполняемый JAR без внешнего сервера.
- Production-возможности: например, Actuator для мониторинга; Boot удобен для облачных приложений и микросервисов.
Пример кода
Application.java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}Что использовать на практике
- Для типовых REST API, микросервисов и enterprise-приложений выбирайте Spring Boot — сегодня это стандарт де-факто.
- Не считайте Boot заменой Spring: это надстройка, использующая его модули (Spring Core, AOP, MVC).
Подводные камни
- Не утверждайте, что Spring Boot заменяет Spring, — он работает «поверх» него.
- Не называйте авто-конфигурацию «магией»: она анализирует classpath и создаёт бины по условиям, а её поведение можно переопределить.
- В чистом Spring веб-приложению обычно нужен внешний сервер, тогда как Boot запускается с встроенным сервером.
Как отвечать на собеседовании
- Определите Boot как надстройку над Spring для быстрого создания автономных приложений → назовите три опоры: авто-конфигурация, стартеры, встроенный сервер → сравните с чистым Spring: меньше ручных настроек, версии под контролем, запуск из JAR → добавьте Actuator и сценарий микросервисов.