Ответ
Запуск Spring Boot приложения — это многоэтапный процесс автоматической настройки и инициализации контекста.
Основные этапы:
- Загрузка и инициализация: Выполняется метод
main, который вызываетSpringApplication.run(). Загружается класс с аннотацией@SpringBootApplication. - Сканирование classpath и автоконфигурация: Spring Boot сканирует зависимости (
spring-boot-starter-*) и автоматически настраивает компоненты (например, встроенный сервер Tomcat, DataSource, если они найдены в classpath). - Сканирование компонентов и создание бинов: В рамках указанных пакетов Spring находит классы с аннотациями (
@Component,@Service,@Controllerи др.), создает и регистрирует их как бины вApplicationContext. - Запуск встроенного веб-сервера (если приложение веб-ориентировано): Сервер (по умолчанию Tomcat на порту 8080) стартует в том же JVM-процессе.
- Вызов
CommandLineRunner/ApplicationRunner: Выполняются бины, реализующие эти интерфейсы, для запуска кода после полной инициализации контекста.
Пример минимального приложения:
@SpringBootApplication // Объединяет @Configuration, @EnableAutoConfiguration, @ComponentScan
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args); // Точка входа
}
}
Почему это удобно: Минимизирует ручную конфигурацию (convention over configuration), предоставляя готовую рабочую среду.