Какие новшества привносит Spring Boot
Что проверяют
Понимаете ли вы, что Boot это надстройка над Spring Framework, а не отдельный фреймворк, и что именно он забрал из ручной рутины. Следом почти всегда спрашивают, как работает автоконфигурация и как её переопределить или выключить.
Как отвечать
Разбирайте по механизмам, а не по рекламным пунктам:
- автоконфигурация:
@SpringBootApplicationэто@Configuration,@ComponentScanи@EnableAutoConfigurationвместе. Готовые конфигурации подключаются по условиям@ConditionalOnClass,@ConditionalOnMissingBean,@ConditionalOnProperty, а их список лежит вAutoConfiguration.importsвнутриMETA-INF/spring. Запуск с--debugпечатает отчёт о том, что сработало и почему отклонено; - стартеры:
spring-boot-starter-web,-data-jpa,-securityприносят согласованный набор зависимостей, аspring-boot-dependenciesдержит версии совместимыми; - встроенный сервер: Tomcat по умолчанию, Jetty или Undertow подменой зависимости. Приложение собирается в исполняемый jar, внешний контейнер сервлетов и war не нужны;
- внешняя конфигурация:
application.yml, профили под среды, переменные окружения и аргументы с понятным приоритетом источников, типобезопасные@ConfigurationPropertiesвместо россыпи@Value; - Actuator:
/actuator/health,/metrics,/env, метрики и трассировка через Micrometer; - тесты:
@SpringBootTestдля полного контекста, срезы@WebMvcTestи@DataJpaTest, поддержка Testcontainers через@ServiceConnection.
Из свежего: Boot 3 требует Java 17 и переехал с javax.* на jakarta.*, умеет собирать нативный образ GraalVM через AOT, с версии 3.2 появились RestClient и виртуальные потоки по флагу spring.threads.virtual.enabled, а ветка 4.x построена на Spring Framework 7.
Где спотыкаются
Говорят «Boot вместо Spring». Внутри тот же контейнер и те же бины, Boot добавляет соглашения и стартовую настройку.
Не могут объяснить, откуда взялся бин и как его заменить. Ответ простой: объявите свой @Bean того же типа либо исключите конфигурацию через exclude.
Открывают все эндпоинты Actuator наружу. По умолчанию доступен минимум, расширять список надо осознанно и закрывать авторизацией.