Использовались ли Spring стартеры на работе
Что проверяют
Не только факт использования, но и понимание, что стартер это набор зависимостей плюс автоконфигурация, и умение разобраться, когда автоконфигурация сделала не то. Следом часто спрашивают, писали ли вы свой стартер и как отключить ненужную автоконфигурацию.
Как отвечать
Начните с конкретики из своего проекта: какие стартеры были и зачем. Обычный набор сервиса: spring-boot-starter-web (Spring MVC, встроенный Tomcat, Jackson), spring-boot-starter-data-jpa, spring-boot-starter-security, spring-boot-starter-actuator, spring-boot-starter-test. Затем покажите, что понимаете механику:
- зависимости: стартер тянет согласованные версии библиотек, версии задаёт BOM Spring Boot, и в
pom.xmlих не пишут; - автоконфигурация: классы с
@AutoConfigurationи условиями@ConditionalOnClass,@ConditionalOnMissingBean,@ConditionalOnProperty. Бин из автоконфигурации создаётся, только если вы не объявили свой; - регистрация: со Spring Boot 2.7 автоконфигурации перечисляются в
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports, а в 3.0 регистрацию черезspring.factoriesубрали; - диагностика: запуск с
--debugпечатает отчёт об условиях, в Actuator то же отдаёт/actuator/conditions; - отключение:
excludeв@SpringBootApplicationили свойствоspring.autoconfigure.exclude.
Если писали свой стартер, это сильный пример: общий для сервисов компании логинг, трейсинг или клиент внутренней авторизации. Сторонние стартеры называют по схеме acme-spring-boot-starter, имена с префиксом spring-boot оставлены официальным модулям.
Если свой не писали, скажите прямо и опишите, как сделали бы: модуль автоконфигурации, модуль стартера с зависимостями, настройки через @ConfigurationProperties.
Где спотыкаются
Отвечают «да, использовал» и замолкают. Без названий стартеров и того, что они настраивают, ответ ничего не показывает.
Не могут объяснить, откуда в контексте взялся бин, которого нет в коде. Это ровно та ситуация, где нужен отчёт об условиях автоконфигурации.
Придумывают эффект вроде «развернули на 30% быстрее». Честнее описать, что именно не пришлось настраивать руками.