Ответ
Spring Framework — это базовый модульный фреймворк для создания Java-приложений. Он предоставляет фундаментальную инфраструктуру (IoC, AOP, транзакции) и множество модулей (Spring MVC, Spring Data, Spring Security), но требует значительной ручной конфигурации (XML, аннотации, Java Config).
Spring Boot — это opinionated надстройка над Spring, созданная для упрощения и ускорения разработки готовых к работе приложений.
Ключевые отличия Spring Boot:
- Автоконфигурация (Auto-configuration): Автоматически настраивает бины и компоненты на основе classpath и свойств приложения, минимизируя ручную работу.
- Стартер-зависимости (Starters): Упрощенные POM-зависимости (например,
spring-boot-starter-web), которые тянут за собой все необходимое для конкретной задачи. - Встроенный сервер (Embedded Server): Содержит Tomcat, Jetty или Undertow, что позволяет упаковывать приложение как исполняемый JAR-файл.
- Actuator: Готовые HTTP-эндпоинты для мониторинга здоровья, метрик, конфигурации приложения.
- Конфигурация через свойства: Единый подход к конфигурации через
application.properties/application.yml.
Пример минимального Spring Boot приложения:
@SpringBootApplication // Объединяет @Configuration, @EnableAutoConfiguration, @ComponentScan
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args); // Запуск со встроенным сервером
}
}
Итог: Spring Boot не заменяет Spring, а предоставляет быстрый способ создания автономных, production-готовых приложений на его основе, следуя принципу «convention over configuration».