Вопрос проверяет понимание ключевого механизма Spring Boot, благодаря которому приложения запускаются с минимальной конфигурацией.
Автоконфигурация — это механизм автоматического создания и настройки бинов.
Spring Boot анализирует classpath и настройки приложения.
На основе этого он решает, какие бины создать.
Разработчик может переопределить любое поведение.
Автоконфигурация — это то, что делает Spring Boot «магическим», но при этом управляемым.
Spring Boot автоматически настраивает приложение на основе доступных зависимостей и свойств.
Если:
В classpath есть библиотека
Заданы нужные properties
Нет пользовательской конфигурации
то Spring Boot сам создаст нужные бины.
Упрощенно процесс выглядит так:
Spring сканирует classpath
Находит классы автоконфигурации
Проверяет условия (@Conditional)
Регистрирует бины
Автоконфигурация почти всегда использует:
@ConditionalOnClass
@ConditionalOnMissingBean
@ConditionalOnProperty
Пример идеи:
@ConditionalOnMissingBean(DataSource.class)
@Bean
public DataSource dataSource() {
// дефолтная настройка
}
Обычно она:
Лежит в starter-зависимостях
Подключается автоматически
Может быть отключена
Автоконфигурация — это управляемая автоматика Spring Boot.
Она ускоряет разработку, но всегда оставляет контроль разработчику.