Ответ
Spring Boot — это фреймворк для быстрого создания production-ready standalone-приложений на основе Spring с минимальными усилиями по конфигурации.
Ключевые особенности и преимущества:
- Автоконфигурация (Auto-configuration): Автоматически настраивает компоненты Spring и сторонних библиотек на основе classpath и объявленных бинов. Позволяет избежать ручного написания XML или Java-конфигураций.
- Standalone: Приложения не требуют развертывания в веб-контейнере. Встроенные серверы (Tomcat, Jetty, Undertow) позволяют запускать приложение как обычный JAR-файл командой
java -jar. - Starter-зависимости: Упрощают управление зависимостями. Например,
spring-boot-starter-webдобавляет все необходимое для веб-приложения. - Actuator: Предоставляет готовые HTTP-эндпоинты для мониторинга и управления приложением (health, metrics, info).
- Внешняя конфигурация: Гибкое управление настройками через
application.properties/yml, переменные окружения, аргументы командной строки. - Профили: Позволяют определять конфигурации для разных сред (dev, test, prod) с помощью аннотации
@Profile.
Пример простого REST-контроллера:
@RestController
@RequestMapping("/api")
public class UserController {
@GetMapping("/users/{id}")
public ResponseEntity<User> getUser(@PathVariable Long id) {
// Логика получения пользователя
return ResponseEntity.ok(user);
}
@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody UserDto userDto) {
// Логика создания пользователя
return ResponseEntity.status(HttpStatus.CREATED).body(createdUser);
}
}