Ответ
Spring Boot — это фреймворк поверх Spring, созданный для быстрой разработки и минимальной конфигурации standalone-приложений. Он следует принципу "convention over configuration" (соглашения вместо конфигураций).
Ключевые особенности:
- Автоконфигурация (Auto-configuration): Автоматически настраивает компоненты Spring и сторонних библиотек на основе classpath и заданных свойств.
- Стартеры (Starters): Зависимости
spring-boot-starter-*, которые объединяют всё необходимое для конкретной технологии (например,spring-boot-starter-web,spring-boot-starter-data-jpa). - Встроенные серверы (Embedded Servers): Содержит Tomcat, Jetty или Undertow, поэтому приложение запускается как обычный JAR-файл, без развертывания в отдельном веб-сервере.
- Actuator: Предоставляет готовые HTTP-эндпоинты для мониторинга и управления приложением (health, metrics, info).
- Внешняя конфигурация: Гибкое управление настройками через
application.properties/application.yml, переменные окружения и аргументы командной строки.
Пример минимального Spring Boot приложения:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.*;
@SpringBootApplication // Объединяет @Configuration, @EnableAutoConfiguration, @ComponentScan
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args); // Запуск встроенного сервера
}
}
@RestController
@RequestMapping("/api")
class HelloController {
@GetMapping("/hello")
public String sayHello(@RequestParam(defaultValue = "World") String name) {
return String.format("Hello, %s!", name);
}
}
Запуск: java -jar demo-application.jar.