Опишите ключевые этапы запуска Spring Boot приложения.

«Опишите ключевые этапы запуска Spring Boot приложения.» — вопрос из категории Spring, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Запуск Spring Boot приложения — это многоэтапный процесс автоматической настройки и инициализации контекста.

Основные этапы:

  1. Загрузка и инициализация: Выполняется метод main, который вызывает SpringApplication.run(). Загружается класс с аннотацией @SpringBootApplication.
  2. Сканирование classpath и автоконфигурация: Spring Boot сканирует зависимости (spring-boot-starter-*) и автоматически настраивает компоненты (например, встроенный сервер Tomcat, DataSource, если они найдены в classpath).
  3. Сканирование компонентов и создание бинов: В рамках указанных пакетов Spring находит классы с аннотациями (@Component, @Service, @Controller и др.), создает и регистрирует их как бины в ApplicationContext.
  4. Запуск встроенного веб-сервера (если приложение веб-ориентировано): Сервер (по умолчанию Tomcat на порту 8080) стартует в том же JVM-процессе.
  5. Вызов CommandLineRunner / ApplicationRunner: Выполняются бины, реализующие эти интерфейсы, для запуска кода после полной инициализации контекста.

Пример минимального приложения:

@SpringBootApplication // Объединяет @Configuration, @EnableAutoConfiguration, @ComponentScan
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args); // Точка входа
    }
}

Почему это удобно: Минимизирует ручную конфигурацию (convention over configuration), предоставляя готовую рабочую среду.